I've started to close down everything I don't currently need. Comparing between mine and my husband's iPhone 4's, he could go an entire day and be at 80% (even after listening to 4+ hours of audiobooks). I could do almost nothing but a few check-ins here and there and check email and be at 60% in 5 hours.
The difference? I was checking into FourSquare, Gowalla, Yelp, Whrrl. No, the navigation icon wasn't being displayed in the bar at the top, so I assumed the programs were sleeping.
Once I started killing most check-in and news apps after exiting, I'm back up to reasonable battery life again. There definitely are some rogue apps that either have hella memory leaks or are calling home too often or something. I realize they're supposed to be "suspended", not calling home, etc... but the difference in battery life is too marked to not attribute it to that. To go from 60% after 5 hours to 90%+ after 5 hours is a huge difference -- and the only change is that I closed apps instead of letting them sit in the tray.
(Btw, I've always had push email set to hourly, even changed it to manually to see if that was it, and it still ate the same amount, so it wasn't email fetching).