Have you often wondered why your recently full battery was suddenly drained empty? BetterBatteryStats is a program that keeps up with what code has been eating your battery and making your phone burn juice, which can help you pinpoint your drain.
Battery drains are generally caused by two things: radio conditions and applications keeping the CPU awake. While this does nothing to help you with radio conditions (you'll have to scootch closer to an operating tower for that), it does allows you to see what applications or services have been keeping the phone awake (wakelocks) and can help you determine what processes have been coming back from the dead (in case you're using some sort of task killer or it's the night of the comet).
The app includes an online knowledge base that can help you determine what some of the trickier or obscurely named services are and also provides some tips if it's known how to manage their wakelock fury.
You can also hunt down the developer thread to find a trial/free version of it, but please consider supporting useful development like this if it helps you out.
Real developers have to eat too.
Download: Google Play