The answer is literally bigger batteries. I'd rather have a phone that lasts all day than one that's a millimeter thinner than it was last year. I carried around a 14oz 1" deep Cassiopeia Pocket PC in my pocket for years, a smartphone half that size would last days... so where is it?
The answer is just to buy another battery and swap it once the last one dies. You can find your phone's battery on eBay for usually $3-20. If your battery is difficult or impossible to replace, USB battery packs are $10-30.