I've played around with this a bit more (having 2 phones comes in handy sometimes), and I now realise that what really did the trick was the sequence of events I followed.
Like many people, I only switch data network on when I need it. If you do the same, you may find that you need to make sure your phone doesn't try to "auto-retrieve" MMS's because this seems to confuse the phone horribly.
i.e.
1. Someone sends me an MMS and it says it's downloading (for ages, no matter what I try). At the moment of receipt data was switched OFF and auto-retrieve was set to ON.
2. I switch data ON and it makes no difference
3. I changed my settiings so that auto-retrieve is OFF (Messaging->Settings).
4. Going back to the message I'm trying to view, it no longer says 'downloading' - now it gives me an option to download manually.
5. Now I switch data on, click to download the message and it works.
So in short, set auto-retrieve to OFF, and when someone sends you an MMS, switch data ON, then manually download. Auto-retrieve only seems to work if data is switched on at the moment you receive the message.
Similarly for sending: switch data ON before hitting send; if you do it afterwards the message just hangs, and you'll need to delete it and try again.