I take the approach that I want good service. If there's an issue, I'll raise with the waiter/waitress or maitre'd. I will usually tip 20% , but like you, if my server gives me a deal or does something exceptional, then the amount gets boosted.
A bunch of us wanted to do something for a friend who was down on his luck. His son was attending college in the fall and was getting scholarship money, but he was still short on the money required. We went for dinner where his son worked, requested him as a waiter and gave him a $1000 tip. One proviso: we gave it in cash and told him that it was a gift, not a tip, so he didn't declare it as income. We steered a couple of groups of professionals (Doctors, Lawyers, and Teachers) to him as well and he was able to make through his last two semesters with cash to spare.
His co-workers were cool with it and we did a benefit for a couple of them as well.