My tipping goes like this:
If I feel that my service was mediocre, I'll give just a little bit (like if my meal was $20, then I'd only give about $1.50)
If I feel my service was good, I'll give 15%
If I feel like my service was great, and the waiter/waitress was really nice, then I'll give more.
If my service sucked, then I won't tip at all.