Window Managers, Desktop Environments and X
Linux is like a stack of papers, it is layered. Different layers do different things. The bottom layer is the Kernel, it is the core, manages memory and provides an interface to devices. It does much more, but that is out of the scope of this faq.
Above that is X, the X Window System, X11. X is the blank canvas of an artist. It provides simply the ability for GUI applications to run. It not only provides the screen, but the ability for programs to receive and interpret key presses, mouse movements and clicks. Programs which run on X are 'X Clients', they connect to the X Server, it gives them the screen real estate, and they start.
On top of X can go Window managers and Desktop Environments.
What are Window Managers
Window managers (WM) are X Clients which provide the border around the window. The WM, controls how an app looks, border, titlebar, size of a window and the ability to resize a window. Many Window managers provide other things like, places to stick dockapps (http://www.dockapps.org), a menu to start programs, menus to configure the WM and other usefull things. Fluxbox for example has the ability to tab windows.
Window managers generally don't provide things like desktop icons. These are commonly seen in Desktop Environments, though it is possible to have icons in a WM through another program (http://idesk.timmfin.net/).
Because of the lack of 'extras' WMs are much lighter on system resources.
What are Desktop Environments
Desktop Environments (DE) are different to the Window Manager in the fact they provide much more, a whole environment. DEs are a bringing together of a range of different X clients, including a Window manager, often a panel for applets, starters and menus, icons and an integrated file manager are common. For a WM, Gnome uses Metacity by default and KDE inludes its own KWin. These WMs can be changed.
DEs are much easier to use but are unfortunately heavier on system resources.