I read about an "app" for the iPhone called TruPhone. It allows you to make calls over the internet when you have a WiFi connection. We have a weak cell signal at our house. I downloaded TruPhone to my iPhone and tried it out using our home WiFi. The call was crystal-clear - far better than what I'm used to at home on the cell. Another plus is that we're going on a trip soon and may not be able to use our cell phones where we'll be - being able to use TruPhone in that situation will be very nice.
Note that you can't receive TruPhone calls on an iPhone (at least not yet), but you can make calls.
I've only used it once, but for now I'm amazed and sold! Check it out: truphone for iphone.