Tips *should* be true gratuities, an acknowledgement of service well done. They should be at the discretion of the customer, reflecting their satisfaction with their service, as well as their good-will towards the service personnel. They shouldn't be EXPECTED, much less REQUIRED.
-HOWEVER-
This assumes an economy where waiting and service staff are paid adequately. In some countries (like the US), they are NOT. They RELY on tips to get by, and not tipping them is equal to taking money right out of their paycheck. This is NOT A GOOD SYSTEM, but it's the one that's in place at the moment. Respect that, and don't forget it. Still, even in that fucked-up system, service personnel should never be rude to a customer. If customers are being asshats, shame on them; it's no excuse to retaliate in kind. It sucks to have to do this, but that's part of being a professional. Good customers will acknowledge that attitude.
I personally prefer a system like the one in Japan, i.e. there are no tips AT ALL, not even voluntary or exceptional ones. You leave money lying on the counter when you leave, chances are someone will sprint down the road to catch you and give it back (yes this really happens). It boggles the mind why people WOULDN'T default to this system; it's the same as any other job, after all: you work - you get paid. End of story. Being polite, nice, and helpful is part of the job (and thus, of what you are paid for), as it ALWAYS is when in a job that deals with customers directly. Even in the US you don't tip your bank teller - but you still expect them to be nice to you and give you good service.