Waiters are expected to make over minimum wage once tips are included. Yes, if they don't reach minimum wages, then legally they're supposed to be paid the difference (though there's a vast gulf between "should" and "does", especially in a job like this where speaking up likely means getting fired). But assuming that the waiter is already reaching minimum wage this month, then refusing to tip means that the waiter is only earning $2-$3 per hour for the time spent serving you.
Also, being a waiter is absolutely a job that should pay over minimum wage, so if your argument is "but at least they're making minimum wage", you're still significantly under-valuing your waiter's work. Being a waiter is hard work.