My Mom's a chronic whiner, she can find the gray cloud no matter what the silver lining. My tactic is to respond to every complaint with something positive then bean dip.
For example, one Christmas she bought us tickets to a musical I had been dying to see and I was super excited.
She complained about everything:
Mom: I thought the seats would be better, I can't believe we are stuck up here.
Me: I can see the stage just fine, I always prefer to be in the balcony, you have a better view of everything. oh I can't wait until they do "big number", that's my favorite.
Mom: That set is really plain, I thought the set would be more elaborate.
Me: That's how the play is classically, I think it's cool, it highlights all they great singing and dancing, you aren't distracted by an overly done up set. Didn't you love the costumes from "second number"?
Mom: Blah blah blah, whine whine whine. (after awhile she starts to sound like the adults in the Peanuts cartoons)
Me: Mom, I have having a great time and I really appreciate these wonderful present you got me. Oh hey, after the show, let me buy you a cocktail from "cool bar" they make the most amazing "fun cocktail".
Lather, rinse, repeat.
I keep my tone light, I don't disagree with or attack anything she says, I simply smile and say something positive then change the subject. Shuts her down everytime.