I make my son stop whining and tell me what he wants.....he doesn't get anything if he keeps it up.. I tell my 6 year old son, "You do not get what you want with that tone of voice. Fix it and ask again." That's it.
My son doesn't get anything when he whines. He has to stop first, and ask me in a normal tone of voice. If he doesn't want to stop his whining, I walk away and find something to do: laundry, vacuum, make the bed, etc. and when he realizes that I'm not going to give in to him, he will come get me and ask NICELY for what he wants. I tell him to stop whining and ask the right way. if he doesn't he doesn't get what he wants and goes in timeout.
My son can be a super good whiner...When we go out and he starts this...I totally ignore him and begin playing with my baby boy and making my baby laugh my older son completely stops and starts laughing because he wants to play to...It has always works for me...It's so funny when his face changes in a matter of seconds..I then ask him what he wanted, sometimes it is a reasonably request and sometimes not....
I also try to discuss with him, what is making him whine? If it's because he wants something and I am saying no (this accounts for about 99.9% of the cases), I tell him why the answer is no.
He has learned that if he wants something he needs to ask in a reasonable tone of voice.