There are definitely software applications which will wreck your battery. I know there aren't supposed to be background processes running at all on WP7, but there are clearly bugs, because two days ago, I had a day and half of battery life, and now I get 3 hours. This has happened before.
I know it is software, because a hard reset fixes it. Then I start downloading a bunch of apps, and one of them does something to my phone (one I know of is any "weave" RSS app). Phone gets hot, stays hot even after locking, and battery drains about 30% an hour.
Sometimes, a soft reset will fix, right now, soft reset does nothing. Phone stays warm all the time and battery plummets -- faster actually than a USB trickle charge can keep up with.
A hard reset will fix this...but it is very annoying to have to rebuild everything all the time, and the fact that there is no way to back up anything means that games, for example, are useless.