My favorite definition is that a language is a dialect with an army. (which I now see is in that article.) Most linguists call the Chinese languages "The Chinese Languages" instead of Chinese dialects. I usually tell people I speak Mandarin rather than "Chinese."
But honestly, most of the time, calling a particular dialect a language is a political move, and calling a particular dialect "standard" is a social one.