It's a privilege to have any service done for you, not just waiting tables.
You are free to give them extra money if you feel that service received exceeds the price that you paid for but it shouldn't be mandatory.
Customer should pay for products and services that's agreed upon. Employer should pay their employees to ensure the quality of the said products and services. There's no reason why a quality of service should be variable based on how generous I feel.