In the US, tipping is part of the unspoken contract of eating out. If you don't like it, or can't afford it, don't eat out. It is not acceptable to just stiff the server (who did not make the laws that allow them to be paid less than half of minimum wage) especially for no reason. Try to change the laws if you really want to take it to that degree, but don't cut someone out of their money and/or get them in trouble with their boss if they did a good job.
Saying that, if a server does a bad job? Please don't just leave no tip. Let their manager know. Leaving no tip let's the bad server just write you off as a dick who doesn't tip, and they don't improve their performance. Similarly, their coworkers all still have to work with them. Alerting the manger lets them know the issue and do their job, which is to placate you and train the server.
Yes, server's employers have to make up their wage to minimum. That being said, needing that service more than 'every once in a while' will most likely get you fired for being a poor server (regardless of that being the reason for not getting tips or not). Also, waiting tables is a job where you expect to make more than minimum wage. It is hard work, much more physical that people realize, and not something most people are very happy to do for minimum. They do it because the earning potential is higher.
Edit: This post is obviously for Americans, eating at restaurants that use servers/server wages. I'm aware tipping is not so endemic in other countries. This sort of applies to other professions where tipping is expected, although to a lesser degree. I would still tip, but it would be more of an "optional nod for good service" than with waitstaff. None of the others count on those tips as part of base-wages quite so badly, other than maybe hairdressers, but again, that is because of how the law in this country allows it to be.