I started with the iPhone 3, moved to a 4 and now have a 4S. I have always used an external battery pack. I put one on every morning, and by bedtime I am usually still at 80-90% on my phone battery. I also leave a charged battery in the car, usually check the charge once a month.
I buy all of my batteries on ebay - usually paying $9 to $12 each, with free shipping. These batteries are all 1900mah - about equal to the phone battery.
All no-name from China.
I have given away at least a dozen to customers, good PR. And every one that I have given away is being used daily.