Respectfully, all of you are wrong.
Fetch will give you better battery life.
Push will give you less battery life.
Why is this? Fetch goes out at the set interval to check for mail, contacts, etc, and then transfers the data. Push on the other hand establishes an idle connection with the server, waiting for a signal of new mail. Upon receiving the signal, the phone will then download the data.
Push gives you worse battery life because this idle connection is always open, therefore draining your battery. If you don't believe me, try it.
I can almost guarantee you your battery will last 2x as long when set to Fetch. Push just drains it like crazy.
Please note that the situation I'm describing concerns a phone setup with Microsoft Exchange. MobileMe works in a similar fashion, but basically gets a "hidden" Jabber instant message, saying "hey, you got an email, come get it!".
Both of these "push" methods are done at the device level. In other words, the push feature runs on the phone itself. (keeping the connection open, and receiving a message) BlackBerry's have great battery life with push, and this is because BB push is done at the network level, and not the device level. Basically the message is forced to the handset, as an SMS would be. The handset's software is designed to automatically accept the message, and from parsing can determine the email contents and the like.
Hope that answers your question. 🙂