At the time I'm writing this T-Mobile has just announced that they will pay up to $350 of your fees for leaving a contract from any of the major US carriers. Starting tomorrow according to a press release once you canceled your plan and have your final bill you can mail it or upload it to T-Mobile. Once you have done that you can trade in your current phone and they will apply that tords a credit to get a new phone.
For me I was kind of hoping that you could keep your current phone and just move to there network. I just want to get off Verizon pay a little less for my phone bill and keep my 4S. So for me it looks like I'll have to wait till my contract is up with Verizon. Most likely ill probably just go back to Cricket when the time comes and get a 5S threw them. But if you live in an area that T-mobile works well in and you are unhappy with your current network this seems like a good deal.
A link to T-Mobiles deal: http://www.t-mobile.com/offer/switch-carriers-no-early-termination-fee.html