Every language has dialects within itself. There is a usually at least one standard or formal dialect of the language that is used in schools, government, and media. Then there are informal dialects that vary by social class and by region of the country. For these to be truly "dialects," they must be mutually intelligible; that is, the speakers must be able to understand each other.
China has many different native languages, many of which are mutually unintelligible. They are called "dialects" for historical reasons: China was a unified empire, and they all use the same ideographs in writing. But technically, the spoken languages within China don't meet the linguistic definition of dialects.
In some countries (e.g. Germany), you get a "dialect chain." As you move, for example, from Southern to Northern Germany, each region can understand the dialect of the regions immediately North and South of it, but not dialects of villages from farther away.
English, obviously, has many dialects. In the U.S., there is the standard dialect, used in media, government, etc. Of course, our standard dialect is different from the one used in Britain. We also have regional dialects in American (Southern, Midwestern, Eastern Seaboard, and variations within those), but because of our short national history and the high mobility of our people, the dialects have not had a chance to "settle" yet, and perhaps never will. In England, regional dialects are much more pronounced and varied.
Some people talk as though standard English is "the" English language, and anyone who doesn't speak it is simply getting it wrong. This is not the way linguists would see it. It is not possible to get your native language "wrong." However, it is important to learn to use the standard dialect if you want a job that involves appearing educated or speaking in front of people. It will help you get yourself and your ideas taken seriously. It is best to be able to use your own dialect at home with family and friends, and switch to the formal dialect when needed.
I do not agree with Post #2. You will have a very hard time finding English speakers in different parts of the same country (or even the world) who really can't understand each other. There are issues of understanding accents, but that is not the same as having another language.
Sure, I might get confused every now and then if I were speaking to a Briton, but it would not be very often -- we would be able to communicate fine so long as accents did not get in the way.
So I would say there is only one English with a lot of little variations that are not different enough to be called dialects.
There are many types of English, in the form of English dialects. First of all, there is American English and British English. In addition, even in each of these there are cultural differences in different countries or regions. In some ways, you can speak to and understand others who speak a different English than you, but you will not understand anything. In China, for example, it is difficult for speakers of one dialect to understand speakers of another dialect.