I had exactly the same problem and have fixed it twice. The first was with a full restore, which was a pain, but worked. However, a week or so after the restore the same problems came back. The problem always occurs for me when I venture out of my home town for more than a couple of days and I suspect it has something to do with the data roaming settings.
This is what I did to fix without restoring. Unfortunately, I haven't had the problem since, so I can't confirm whether what I did actually fixed the problem of was a pure fluke. Also, I tried a lot of things, so i'm gonna put down everything I did, as I'm not sure what exactly fixed the problem.
1. Turned the phone off for over 1hr (No idea if this had any influence)
2. Turned on data roaming, 3G and cellular data in the setting menu
3. Connected to local wifi
4. Check for software update (No idea if this had any influence) - Mine was up to date
5. dialled a randon number - just pressed a load of numbers on the keypad and then pressed call
6. Ended call - It actually ended
Since then the phone's been fine