I believe this one has already been posted, but its simple and avoids dealing with idiot customer service reps on the phone.
1. Go to local crap shack (wal-mart) and buy a $20 Go Phone
2. Put your sim card from your iphone into the cheapy Go Phone
3. Wait for a while so at&t recognizes you are on a non iphone phone (took me about 30 minutes)
4. Sign into your AT&T mobile account on the web (where you can change account info, pay bill, etc.)
5. Go to your account settings and change your text message plan. If you waited long enough, there should now be a new option for a non-iphone sms plan. Switch to this. If not there, wait 10 minutes and try again.
6. Send yourself a picture message on your go-phone (mine came with pictures already on the phone).
7. Put sim card back into iphone
8. Send yourself a picture message to test.
At&t network will automatically recognize that you are on an iphone and force the iphone data plan, but will leave your sms plan alone. No need to worry about losing data or iphone features.
This worked for me, just throwin it out there for you all to try. I use the stock settings in the settings wizard with swirly for at&t.
MMSC: mmsc.cingular.com
Proxy: wireless.cingular.com:80
everything else blank
Try this before dealing with idiots at at&t.
K-0