I can get about 12-14 hours of "on" time with a fully charged battery with the htc evo. But it does not matter because you iphone 4 is harder on your battery then any phone on the market. So if you clearly did not select the phone for battery. Which means you should just stick with the iphone 4 and get the iphone 5 when it comes out. If you are happy with what you got, why change?
As for the rest of comments, yea you can easily get 12 hours of "on" time with one charge, you just need to make sure you do it right.