This has probably been mentioned but I thought I would add my personal experience of dealing with poor battery life.
I finally had the last straw with the battery life on my Desire on the weekend after it used 60% battery life over night idle.
After a quick look at the phone it showed the Awake time and the Up time to be almost identical, so the phone was never sleeping.
After a quick browse at various other problems people were having I found the code for a Test menu, enter *#*#4636#*#* on the phone keypad, this gives you all sorts to look at around the battery and it's use.
The best one I found for diagnosing my issue was Battery History, and checking Partial Wake Usage, this highlighted the fact that my Google Calendar was on an almost permanent sync.
I have disabled that particular Sync, as frankly I'm not that busy to require constant updates from my calendar to my phone, and I can always check it via the web.
So last night I went to bed with the phone on 80% and this morning it had only dropped to 75%, result, and all my other Syncs are still enabled, most at 4hours but some more often, that includes, Twitter, Facebook, all other Google services enabled, Weather, RSS feeds, Flickr.
I will continue to monitor the battery life, but I finally feel like I don't need it permanently on charge whilst at work.
Hope this helps some others out.