I've used a few and here are my observations.
Tmobile(currently with them)-In rural Iowa it sucks, plain and simple. In Des Moines it works fine for both data and voice. Great coverage in most large cities. Surprisingly good the couple times I used it in europe and mexico (free). Unlimited everything for the price is tough to beat. I can live with the lack of rural coverage since I spend less than 1% of my time there.
Sprint-It's been a while since I've used them but they had similar issues as Tmobile.
Verizon-I always had great coverage both data and voice wherever I went. Their prices are terrible.
AT&T-I don't know enough about them but they look very similar to Verizon
US. Cellular-I've heard from multiple "experts" that US. Cellular has the best voice coverage in Iowa.