I was a waitress for years, luckily I worked in decent places and had good clientle, apparently I was a good waitress too because I never got stiffed or complaints, but when I think I am getting lousy service somewhere I will tell the waitress flat out before it continues.
I will ask her if there is a problem or if she needs someone to give her a hand, obviously they are flustered and say what do you mean and I reply that I feel that she is neglecting our table, not coming back with what we asked her for etc.
Usually it gets better right away, the only time I had exceptionally bad, bad service I talked to the manager, you should not wait until the dinner is over to do that, get ahold of a manager before it gets to that point and tell him/her what is going on.
They will send different waitstaff to take over the table and comp part or all of the bill.
Then you won't mind tipping the person that takes over.
I see tipping as a service you are paying for. If people don't like the idea of having to tip someone then there is always take out but having someone wait on you is a service that you pay for.
I don't go out to eat that often so I really appreciate someone waiting on me and I don't mind paying for it.
Now here is a piece advice that everyone should pay attention to. I once reported a waiter where I worked because he was ripping people off.
When you eat at alot of restaurants they will add the gratuity on tables over 6 or 8 depending on what their policy is.
Its to prevent scumbags from booking a big party and tying up someone's station all night and then leaving a lousy tip.
I don't mind it when I go out because I expect to tip them anyway, if the service is bad then you report it to the manager.
Not everyone is aware of the tip being added in so our policy was to circle the gratuity on the bill and write below it, tip has been included so that they would not tip on top of that, its amazing how many people do not actually look over their bills, they see the total and reach for their wallets.
Well, anyway this guy was not telling people and he was getting double tipped, when you have large tables its not uncommon for the tip to be $40.00- $100.00 all over the place.
He was bragging one night that he made $160.00 off that party he had. Then he told everyone how he does it all the time.
A waitress got caught once because the guy that paid her didn't look at the reciept at the restaurant but he took it with him because it was a business expense on his account, he went over it when he got home and  he was ticked that he paid the tip twice and they had to return his money.
So take the time to read the bills.