Are you happy with your 3GS? You feel comfortable with the display size and UI and customization and apps and what not? If yes, go for iPhone 4S. iPhone 4 is outdated for the price, really. Might as well spend a bit extra. Or wait.
If you think you need the bigger screen, stylus and the...