The 4, easily.
But I can be a bit biased since I never owned the 3GS. Sorta like Nike Jordan shoes and why I pick 1992 MJ the most in 2K11. My favorite was Jordan 7's and I even got the retro versions over a decade later. I mention this because we tend to gravitate and be biased toward ones we own and have the most experience with.
You can always wait though for the 5 since it is only 3 months away. I know about the Antennagate, but I still find it remarkable that iPhone 4 is 200MHz faster than 3GS, 3mm thinner, and Apple still found a way to give it a bigger battery! Remarkable engineering job by them even with all the Antennagate complaints. Even after all these dual-core Androids being released, iPhone 4 still has the longest battery life of them all! And it is doing this with a more polished/smoother OS and being thinner than most of them. The fact the OS remains static and not have live widgets/tiles running in the background does help.