The first thing to do is to find out the best carrier for your area. Then you can compare phones. Also, you can't compare an operating system (android) with a phone (iphone). It's not a valid comparison. Some of the android phones are garbage.
The iphone is a great phone, but only if AT&T has good service in your area. If not, you just bought yourself an expensive mp3 player. I have the 3GS and love it. I'll probably upgrade to the 5 if it comes out this summer as they've talked about. I have no desire to access the root of my cell phone. There isn't a program that apple blocks that concerns me all that much. I don't text a lot so swype isn't a big deal. I did a quick search and there are speech to text apps for the i phone, again something that I don't care about.
The only reason AT&T gets bad reviews is that they didn't execute the i phone rollout well at all. They were caught off guard with the actual data needs of those users. Now that people will be switching back to verizon AT&T's service will likely get much better (where it was bad). I got my first cell phone on Ameritech which changed to Cingular which is now AT&T. Had their phones for over 10 years now. No real complaints from me.