Most important difference is build quality.
Within 1 year, I've had 3 3GS. None of them was build the way I expected it from a £500 device.
First one had a loose screen in the top left corner, the second one had a loose chrome bezel after 2 month and had a non perfect fitting SIM carrier, the third one has a loose screen again.
The reason for replacing the first ones was a very, very bad battery after only 3 month of usage.
That being said, I treat my phones really good, none of them ever fell down or anything like that.
Although I really like the software, the hardware in the 3GS is absolutely crap. Worst phone I've ever had. The 4th gen, however, is absolutely perfect. No problems whatsoever.