3gs to 4s: do it, do it now!
4 to 4s: not so much. the 4 is quite fast, quite powerful for every iOS app now. You should not even need to stay on the fence.
It is very simple reasoning. If you are upgrade-eligible and you can flip the 4 with some profits, then why not. However, it means you extend your contract another 2 years. so, when the 5 coming out, you may not be able to upgrade to the 5. Just weigh these aspects and choose your way.
Don't get into the argument you should upgrade to 4s because it is faster. It is the fact that 4s is faster 4. Nothing to argue here. If the faster the better is your main consideration, then just buy it. don't bother to trouble your mind with hesitation. However, if your main consideration are the efficiency, usability, convenience, sufficiency, then the 4 is quite enough.