This, by the way, is specific for the US. In Germany, and I believe in almost any other European country, only the sender pays for SMS and calls. I spent a year in the US and this was something I found quite irritating - being charged for receiving a call.
American cell-phone plans generally give you a fixed number of calling minutes (plus various other bonuses, such as free calling on nights and weekends), and once you go over the quota, you pay for receiving calls. I just checked out the cheapest individual plan for Verizon in my area, and they charge 45¢ per minute after your allowance is up.
I assume they set things up this way because cellphone numbers share the same number space in North America as landline numbers, so if it costs more to maintain a cellphone network, the operator cannot recover those extra costs entirely from people calling into it.