Exchange is particularly vulnerable. MobileMe uses a different protocol, but appears to be subject to the same problem based on posts I have seen. To go a little deeper beyond my "cookbook" instructions, there are only a couple of things that can cause heavy battery drain. One is any app that uses animation or heavy CPU use; mostly interactive games. The other is heavy data exchange, especially on 3G. If you play games you probably realize you will only get about 5 hours of playing time. This is normal, and is common for any handheld game platform.
If the phone is hot or drains the battery in Standby about the only culprit left is continuous data usage. Any cell phone will get hot when on a call (iPhone included) or using high speed data, and everyone expects this. But if it happens on Standby there is a background process that is either sending data or trying to send data. So most of the tips I posted (only some of which are original with me) are designed to stop the continuous data transmission. Resetting Network Settings will clear low level connections that are stuck.
Resetting Push email accounts will close "stale" connections that the phone is trying to use but is getting no response. I first discovered this problem monitoring the Exchange end of our corporate mail server; there were a dozen connections to my phone. Rebooting the Exchange server closed them, but few of us have that option.
I suspect that the same problem occurs with other apps that can send data in Standby. With 4.3 Apple added the Ping app, which I suspect can get into a loop trying to send and failing. It could be that Apple's servers are simply overloaded by 50 million phones trying to access Ping. I noticed a problem after upgrading to 4.2 with Game Center; I significantly improved my battery life by disabling it (I was never tempted to use it). But I tried disabling Ping and it made no difference, perhaps because I opted out of Ping from the iTunes side. But then again 4.3 and 4.3.1 have better battery life for me than 4.2.1 did.
The other troubling fact is that this is really an isolated problem; only a few phones have it. I know that there are hundreds of reports, but there are 100 million iPhones. If even a sizable minority of them had this problem there would be tens of thousands of posts (as there were when 2.1 had a REAL bug that affected every phone, at a time there were only 9 million phones).