I was told that waiting staff don't directly get tips that go through the till (ie, on a credit or debit card), so if you want to make sure somebody gets their tip, you should make it in cash.
Some restaurants do pool the cash tips to be divided among staff, which I think makes it difficult if you want to really show your appreciation for good service from an individual. (I guess the pool system relies on honesty from the waiting staff anyway!)
I understand that the system in the US is to pay staff below minimum waga, so they really need tips to make a living wage. This, I think, is entirely the fault of sucky proprietors and an idiotic system, so I'm often in two minds about whether to support it. (No offence to the waiting staff themeselves - I still tip for good service,, but I think the notion of demanding tips from customers to make up the wage that the employer should be paying is outrageous!)
I definitely only tip for good service in the UK - in the vast majority of cases, this means I do tip. But if the service is not good, I don't tip merely out of convention. I've had people bring me the wrong meal (and I don't mean get my order mixed up with another person's, I mean get my order wrong), or not bring bits of it I ordered, or fail to take notice of an instruction (like "no anchovies"), or keep me waiting for service, and still
expect a tip. Er, no.
I refer everyone to Mr Pink's eloquent dissertation on tipping in Reservoir Dogs
for further details!