Well since I have a CDMA phone the only carriers that use that technology are Sprint, Verizon and any of their resellers (such as Virgin, Boost, Page Plus, Etc...). Both AT&T and T-Mobile use GSM technology and I haven't really been researching what you can do with those phones specifically.
However, I found a few tutorials on xdadevelopers and a couple of youtube videos that show how to get a Sprint or Verizon phone to work with one of the pre-paid carriers (Virgin, Boost, etc...)... that would include voice, 3G data, and MMS. I'm still doing research because I would really like to get 4G LTE data working as well as all of the other phones features. So far my understanding is that Sprint 4G LTE phones won't get 4G LTE speeds on Verizon and Sprint hasn't rolled out 4G LTE in the areas that I live/work (which is why I'm going to Verizon in the first place... that and the coverage is much better on Verizon in my area).
Oh and I mentioned the two cell technologies, CDMA and GSM, because they are not compatible. A CDMA phone will never work on a GSM carrier and vise-versa, however I have heard that there may be phones that have hardware support for both technologies built in (iPhone) but I haven't confirmed that.