I used to have the same issue.... I would carry a charger with me at all times. I even bought a 2nd battery and a battery charger that charges it when it's not in a phone.
However, I went through one night, deleted a bunch of apps I didn';t use. I also got rid of all the home launchers I didn't use (I had 7 of them I think) My problem, I think, was I had my widgets running on all of them. (ie- my fb app was on all 7 home launchers)
I kept launcher pro and of course my stock home launcher (the one with 3 screens) I put a phone, camera, sms, and inet shortcut (not widget) on that one and nothing else. my launcher pro is decked out.... Since then, my battery lasts 10 hours.... no kidding. I carry my spare battery, JUST IN CASE, but have no real need. I also don't carry my charger anymore.
at the same time, I installed juicedefender app.
so between the juicedefender, deleting apps I don't use/want, and delete the home launchers, I did something that fixed the problem. Just play around with it.
Spare battery cost me $10 and the charger cost another $10. can't remember the site though.