It was driving me nuts. I have an Evo 4G from Sprint. A few months ago I had bought an extended battery for it so that I wouldn't have to worry about battery life so much. It worked well. It probably added around 50-70% more battery life to my phone and it didn't weigh much at all. Basically a day and a half of battery power.
Then a month or two there was an htc update, and it was around that time that my battery life died. For some reason, my battery would drain very quickly. I didn't know what was causing it and the battery would last just 10 hrs at best. I thought the battery was defective and needed to get a new one, but before that, I experimented to see if it was a software problem.
The first thing to do was to try turning a single feature off after a full charge and see if throughout the day there are any changes. I tried the GPS, 4G, Bluetooth, and other settings but no results. Finally on Friday, I set my work email account (in exchange mode) from 'as items arrive' to "30 Minute intervals" and off peak traffic to a 2 hour refresh. The battery life went from less than 10 hours to over 2 full days of power! That's like a gazillion % improvement!
So in my case, for some reason the exchange server in one of my email accounts was over taxing my phone. Setting it to a 30 min to 2 hr intervals made a huge difference in my battery life.
So if any of you with an android have an exchange server email account, try playing with the settings to see if you see an increase in your battery life or not.