Here are some suggestions for people who seem to be struggling with battery life while others are doing just fine.
I too get a great battery life (for now) when I keep Wifi and Bluetooth off (have no use for Bluetooth personally, so can't say anything about it otherwise) but everything else running. I can get a full 12 hours including some calls, a good amount of web browsing and market browsing off and on, playing some games & testing some apps, making many texts and emails, etc.; similar activity to what others have reported here as a full day with good battery life.
However, initially I was tearing through my battery life even with my phone mostly idle on my desk. What did I change to improve things? I made three small and unobtrusive changes to my settings.
The first thing that I changed was to turn off Facebook sync in the "Accounts & Sync" section of the phone's settings. This may not have made a big difference, I'm not sure, but the bottom line is it's one less process using 3G through out the day. Unless I've added a new contact and I know they're on my Facebook profile, I don't need that sync turned on all of the time. If I do add a new contact and want it to sync with their Facebook profile, I just need to turn it on for a minute, it will then sync, and then I can turn it off again.
The second setting I changed was on Twidroid, the very popular Twitter app. I'm not a Twitter fiend, but I do have friends who will frequently message me with it. I set it to alert me on mentions of my name and direct messages and to check every five minutes. That may have been a mistake. While something like your Google account doesn't seem to eat-up too much battery with frequent checks all day, a random app like Twidroid might not be so well optimized. I changed it to check only once an hour and got a huge improvement. Once an hour seems still more than frequent enough for something like Twitter. If I want to check sooner, I merely need to open the app.
Finally, in taking a cue from my apparent success with Twidroid, I set the Facebook app to stop updating me all together. Why? Because while the Facebook app has a native way to notify you of messages, it does not open these notifications in the Facebook app, it just opens them in the browser for you. You can set your Facebook account to notify you by email instead (I imagine many people were already using that method). Android is already checking your email at regular intervals and the alert you get will open up the message in the browser just like the Facebook app's alerts (or you could just read them in your email if you don't need to reply). Keeping my Facebook alerts as emails kept a possibly unreliable and battery-eating third-party app from regularily accessing my 3G in the background. The email updates allow me to still get Facebook updates as often and reliably as ever, and in no less of native way given the app alerts just redirected you to the browser anyways.
I don't know if anyone of these helped more than another, but all together my battery life went from ****ty and awesome. I'm guessing it was mostly asking Twidroid to update so often, but my Facebook tweaks surely couldn't have hurt and likely help at least a little.
Perhaps these kinds of things won't help those with serious battery issues that could be due to just bad batteries, but I found they not only made a difference on my phone, but that they made a huge difference. Regardless, good luck to anyone out there with disappointing battery-life