One important thing to note before we start is that Microsoft is the single source for the Windows operating system, and "Microsoft Windows" might be seen as a single product, but technically it consists of multiple layers of software, working together transparently from the user's point of view. In the Linux world, however, there are multiple software packages available for each of these layers. This array of choices makes it easy for an unaccustomed user to get confused with the terms.
I'll try to explain the multiple layers below.
1st layer — Command line interface / kernel
To understand the multiple layer aspect of Linux and describe it in simple Windows-like terms, let's pretend we're back in the days of Windows 95.
In this analogy, the "Linux" operating system is similar to DOS where everything is executed from a command line interface (abbreviated "CLI"). In fact, on most server installations of Linux, a CLI is the only way to access the machine. After Linux starts up, depending on configuration, it will either stay in command line mode, or start a graphical user interface (abbreviated "GUI") automatically. Additionally, on some machines that stay in CLI mode, a user who logs into the CLI can manually start a GUI.
2nd layer — Graphical user interface
On top of the command line interface sits the GUI. Modern Linux systems typically use an X Server, which is essentially just like the Windows desktop — think of it as a blank canvas.
This layer handles the hardware level of the GUI, managing the input from the keyboard, mouse, etc., and output to monitors, etc. Basically, it handles how things are drawn to the screen; what is drawn on the screen is controlled by a window manager.
3rd layer — Window manager
Sitting on top of the X window system is a window manager. It's responsible for drawing each application on the "canvas", and attaches common window elements like borders, the title bar and minimize/maximize buttons to the window. Switching window managers can be likened to switching between "Classic mode" and "Aero mode" in Windows: the frame of the window will change, while the content of the window stay the same.
The most high-profile window managers in the Linux world are KDE and Gnome, and generally a Linux distribution will focus on one window manager as the primary interface. However, in general, you are able to install any window manager on any distribution and be able to run it without issue.
Ultimately, it's a matter of choice which platform you would want to use. Each provides a large number of applications that run under them, using their framework. Also important to know is that multiple window managers can be running at the same time (Enlightenment can be used under Gnome, etc), but that's typically outside the need of normal users.
With regards to Gnome and KDE, these two projects have grown much larger than being only window managers. Among other things, they also include development frameworks to create applications from. The KDE framework is known as Qt and the Gnome framework is known as GTK. To state the entire scope of these two projects in this post would be information overload.
To help confuse the issue for normal users, the KDE and Gnome frameworks are now also available for use on the MS Windows platform, typically used by applications that are trying to be used on multiple platforms (like the IM client Pidgin). In most instances, however, when you see mentions of Gnome or KDE, a Linux desktop is being described.
Thanks to Phoshi, whose answer I built upon.