This article is from the sci.lang FAQ, by Michael Covington (email@example.com) and Mark Rosenfelder (firstname.lastname@example.org) with numerous contributions by others.
[--M.C. + M.R.]
A dialect is any variety of a language spoken by a specific community of
people. Most languages have many dialects.
Everyone speaks a dialect. In fact everyone speaks an _idiolect_, i.e.,
a personal language. (Your English language is not quite the same as
my English language, though they are probably very, very close.)
A group of people with very similar idiolects are considered to be
speaking the same dialect. Some dialects, such as Standard American
English, are taught in schools and used widely around the world.
Others are very localized.
Localized or uneducated dialects are _not_ merely failed attempts to speak
the standard language. William Labov and others have demonstrated, for
example, that the speech of inner-city blacks has its own intricate
grammar, quite different in some ways from that of Standard English.
It should be emphasized that linguists do not consider some dialects
superior to others-- though speakers of the language may do so;
and linguists do study people's attitudes toward language, since
these have a strong effect on the development of language.
Linguists call varieties of language "dialects" if the speakers can
understand each other and "languages" if they can't. For example,
Irish English and Southern American English are dialects of English,
but English and German are different languages (though related).
This criterion is not always as easy to apply as it sounds.
Intelligibility may vary with familiarity and interest, or may depend
on the subject. A more serious problem is the _dialect continuum_: a
chain of dialects such that any two adjoining dialects are mutually
intelligible, but the dialects at the ends are not. Speakers of
Belgian Dutch, for instance, can't understand Swiss German, but
between them there lies a continuum of mutually intelligible dialects.
Sometimes the use of the terms "language" or "dialect" is politically
motivated. Norwegian and Danish (being mutually intelligible) are
dialects of the same language, but are considered separate languages
because of their political independence. By contrast, Mandarin and
Cantonese, which are mutually unintelligible, are often referred to
as "dialects" of Chinese, due to the political and cultural unity of
China, and because they share a common _written_ language.
At this point we usually quote Max Weinreich: "A language is a dialect
with an army and a navy."
Because of such problems, some linguists reject the mutual
intelligibility criterion; but they do not propose to return to
arguments on political and cultural grounds. Instead, they prefer
not to speak of dialects and languages at all, but only of different
varieties, with varying degrees of mutual intelligibility.