This is my first iPhone so I can't compare it to the 3G, but it can last half a day with 4-5hrs of data use, very little phone use. I have bluetooth & wifi turned off, brightness down to 1/5, 3G on, and today I turned off push and put the fetch setting under manual. I've only drained the battery to death the first day and since then I've been charging at 10%.
It takes some getting used to when you unplug it at 100% and after going online for a few minutes, you're down to 98%.
Today while taking the subway, I was reading a book on the iPhone and thought, why waste energy looking for a signal? So I put it in airplane mode while I was underground. I don't know how much battery life that saves, but I'm underground at least 40min a day.