I am not going to write an entire post about the crap servers have to deal with at their jobs or how unfair tipping can be or what kind of etiquette you should show your server.
What it comes down to, in my humble opinion, is this:
Servers are responsible for a LOT of stuff that they may not even have control over. You asked for no onions, they put in a request for no onions, the chef makes your food with onions, your server brings you that food. They didn’t put the onions on your food (nor did they make your food cold nor did they make you wait 30 minutes before you were seated).
Yet far too often, the server is “punished” – no one else, mind you – for your dissatisfaction. You are able to withhold the money that brings them just up to minimum wage. Some of these people are students working their way through school or single parents. And just because the restaurant is fancy, doesn’t mean they get more money (although they should).
Be considerate before you decide to be rude to your server, withhold his or her tip, or do anything else that would be considered bad etiquette.