There are several schools of thought regarding tipping, gratuities and service fees. If you look at a server as an independent contractor working in your restaurant you can understand the lower minimum wage. I'm a cook, I make food but don't have the time to leave the kitchen or the experience to balance the service to the table. I need someone to serve my food. The server needs a place to ply his trade. In America, it's customary for a guest to pay for the service rendered, and it goes directly to the server, not the restaurant. I get my money to pay my bills in the cost of the meal. The server gets his money to pay his bills from the service he provided. In America, it's customary to pay for this service via a percentage of the food bill (including drinks). You are paying for the fact that you didn't have to set your table, you don't have to pour your drinks, you don't have to go into the kitchen and explain to the chef what you want, you don't have to look for additional napkins or condiments, you don't have to ask your dining neighbor what a dish is comprised of, you don't have to go back to the kitchen to check your order, you don't have to clean your table, you don't have to know how to work the register to pay your food bill. These are all services provided to you by the server. If you enter a restaurant that utilizes the customary tipping/gratuity/service fee policy, you acknowledge that you are responsible to pay for the service you received. To refuse to pay for the service is a theft of service. If you agreed to have the lawn man plant your flowers you are obligated to pay him for his service. It's the same for tipping or paying a service fee. You may decide you were unhappy with the service, but it's your responsibility to try to correct what you don't like, giving the server the opportunity to make adjustments accordingly. It's also your responsibility to understand that person is a server, not a servant. You are not the only table or guest the server is working with. Sometimes you have to wait. Sometimes, the restaurant simply cannot accommodate your needs. None of these things is the fault of the server. Witholding a gratuity because you could not substitute the corn for the mashed potatoes is a restaurant policy and completely isolated from the service you received from the server.
A good server does not want the custom of tipping/service fees to be removed. Personally, I could never afford to pay my servers $18 - $23 an hour. But, if you want to dine in a restaurant and accept the service rendered, you have to pay it. If not, you've just stolen from your server.
Some places put an automatic grat on all bills. I do this during mardi gras and certain festivals. The servers all take on double shifts and practically work around the clock. I refuse to see them work that hard and not be compensated appropriately for their labors. Full disclosure is presented before entering, with the menu, and verbally upon greeting. Plenty of time to decide you might not want to pay for the service you are about to receive. Some people may say they worry they'll get shoddy service when the server doesn't have to work for it. Honestly, if a server doesn't give stellar service, how long do you think they'll remain employed? On the contrary, you get more balanced service because your server is no longer worrying if you are going to stiff him or not, and how he'll make his rent, or electric bill.
Didn't mean to go so long winded, especially on an old thread. Every now and then, I come out of the kitchen to help my staff with the tables. I don't know how they do it, especially during our busiest brunch shifts. It's my humble opinion that servers should get a minimum of 20% and up to 25% (especially if they work in teams). If you have a legitimate concern regarding the service you are receiving, ask to speak to someone while you are in the restaurant, not at home, on yelp, etc. The server cannot change a policy regarding the menu, payment capabilities, the temperature, the table's children next to you, etc. If you feel your water glass is not refilled quickly enough, your coffee cup is empty, you feel your steak is not cooked properly, those are issues you speak to your server about. Be proactive about getting resolution before you leave.
Hope I get to check on this before another two years goes by!