I solved this issue, so this is mainly a hint to anyone who finds themselves in the same situation, but would be interested to have this confirmed by others.
I upgraded from iPhone 4 to 4S, setup the phone fully including iCloud, iMessage the works. Everything (except Visual Voicemail) was working fine.
For friends who also had iOS 5 phones (both 4 and 4S) with iCloud setup I could send them messages and the iPhone would correctly determine that they had iCloud accounts and change the message colour from green to blue. After sending messages I saw the delivery confirmation. So all good.
Because of the visual voicemail issue my dumb provider, T-Mobile in the Netherlands - I could hear the girl flicking the pages of the script she was following, asked me to do a full reset of the iPhone. I did so (the visual voicemail still is not working.... sigh.)
Anyway following day friend asks me did you get a message (SMS) he sent. No I didn't, asked him to try while we were on IM chatting - no luck.
- From his side he was using 'Messages' on iPhone to send message to me. He saw me as 'blue' so message was being routed via Apple's message network. He saw 'Delivered' after his messages to me.
- From my side I saw nothing.
- I looked at Settings | Messages and saw that iMessage was enabled. I saw that 'Send as SMS' was enabled.
- At first glance all looked OK then... I remembered from looking at all settings on my new iPhone/iOS 5 that in Messages settings that there was a section called 'Receive At' which used to say '2 Addresses >' they were my mobile phone number and my iCloud account email (NOT my @me.com address but the email address I used to register iCloud).
- The 'Receive At' section had disappeared.
I simply turned off iMessage in Settings | Messages, left that screen, went back in and turned on iMessage again. As soon as I did this the 'Receive At' section reappeared and eventually repopulated with both addresses (mobile number + iCloud account email).
Issue To Be Aware Of:
This is quite a potentially serious issue as to all intents and purposes it looked like my iMessage setup was working both to me and the person trying to message me. It appeared to him that messages to me were going successfully via iMessage, they weren't. And also it meant that he could neither also send me a message via SMS because his iPhone would default to iMessage (because I had a valid iCloud account).
So if you have iMessage setup and you do a Reset All Settings beware of this possible glitch.