gnome (http://www.gnome.org/) is a Desktop and Session Manager. sawfish (http://sawmill.sourceforge.org/) is a Window Manager. kde (http://www.kde.org/) is a gnome alternative and windowmaker and enlightenment are alternatives to sawfish.
Both gnome and kde provide a desktop environment and an application development framework. A desktop environment usually consists of a window manager, task bar, and perhaps a file manager and documentation browser. A development framework provides libraries and a GUI toolkit for application development.
Applications like windowmaker, and enlightenment are desktop environments which tend not to provide development frameworks. They do, however, tend to provide session management. While you can use these with desktop environments like gnome and kde their functionality sometimes overlap, and may even conflict.
XFCE provides a simple and very small desktop requiring minimal resources but providing a sufficient feature set for the genral user. XFCE is actually based on the GTK+ toolkit as is the Gnome desktop.