Why can't my iPhone receive SMS messages on 3G?

I have a 3GS which has just started having issues with 3G connection. It refuses to receive SMS messages, but I am able to send them. I have tried to reset network settings, turn off iMessage, restart numerous times to no avail. The only way I can make it work is to turn off 3G, turn the phone off and on which allows SMS to be received.

Am I missing something obvious as to why it's having a mini meltdown?

You should update to 5.1.1. If your on 5.1.1, reset network setting by launching Setting, goto General, Reset, Reset Network Setting. Follow onscreen instructions and then it should work.