Anyway I'll give you my ideas in case I don't check back on the forums.
If not jail broken then remove the SIM and clean it with a cotton or something soft. After putting it back, make sure you have cellular data turned on and that you have the correct APN (even if you haven't changed it, check all the same).
If jail broken, there's a setting to choose 2G (Edge) or 3G. Make sure it's set to 3G if it isn't.
In either case, it helps me when I get bad network/bad coverage to switch cellar data off and on a few times. Make sure that the network logo in the upper left corner goes off (like in airplane mode). I don't understand the technical justification behind it but I think it resets the connection which means the radio module has to disconnect completely then connect from scratch when it's connected to a bad tower.