Ezra Klein has an article directed against tipping in restaurants. I never thought very seriously about this before, but tipping is a very deceitful custom: the premise is that we are being nice and tipping our waiters because we feel some common human bond with them. This is true; I know waiters, I've known waiters; I've never been a waiter, mostly because I'm awkward and clumsy; I've worked in food service. I feel that people deserve tips. But in reality, the custom supports a system in which low wages are supposed to be compensated by tips. Waiters, particularly at places like diners, make dirt. The only reason the state permits them to be paid so low is that tips are supposed to compensate. Sometimes they do, sometimes they don't. But they can continue to receive incredibly low wages on the grounds that they receive tips, as well.
Let's imagine, though, a counter-scenario. We abolish tipping, and instead add that money to the menu price of the food. Waiters are subsequently paid livable wages. Assuming waiters didn't get screwed in the transition, this would arguably be a more honest way of going about it. Then again, it seems that customers would simply be angry and the wait staff would continue to get the short end of the stick. So perhaps tipping remains the best way to confuse people into paying the full value of their meal.
Update: Over in the comments section at Ezra Klein's blog, a reader actually developed a model to explain tipping as a means to transfer risk.