I've heard about half of the people with iPhones that I work with complaining of the same issues so I'm going to document the steps I have taken and what has worked and not worked.
- Do a hard reset. If you don't know what this is, you probably haven't done it. Hold down both the "Home" and "Power" buttons at the same time until your phone goes black. (Detailed Directions)
- If that doesn't work (It didn't for me), then do a backup and restore in iTunes for your phone. This worked for a day or two but the bad quality came back. (Detailed Directions)
- Go to a corporate AT&T wireless store and get them to replace your SIM card. This shouldn't cost anything. After doing this my call quality has been MUCH better. It could very well be a coincidence, so I'm going to have to give it a few days. You can find a corporate store by going here and selecting your ZIP and "iPhone" from the box.
Update: Still having the same problem but a little less often.
- If you have tried all of the above, go to the Apple store and get your phone replaced. If you go to the Apple store first, you will waste your time because they will tell you to do steps 1-3 above.
Getting the SIM replaced sort of helped. I haven't gone in yet to get my phone replaced and I'm trying one last thing. Someone tipped me off to the fact that if you turn 3G off, your calls will magically be clear again. This has worked but obviously points to some issue with AT&T's network or a design flaw in the iPhone.