According to Wikipedia, a Display Manager (such as KDM) is a graphical login utility, from which you can choose a user to log in as and a desktop environment (and/or window manager) to run.
A Desktop Environment is a collection of software to implement the "desktop" GUI paradigm, with things like icons, a graphical file browser, a clock, a notification area, wallpaper, settings management tool, and so on. They often provide support for inter-process activities such as cut/copy/paste and drag-and-drop. Some DEs aim to provide an extensive suite of software that all works together, including things like a web browser, email client, chat client, text editor, archive manager, office document suite, and so on.
In theory, all three of DM, WM, and DE are independent. In practice, there's usually, at a minimum, better integration if you use ones that are developed together (you can run KDE apps on GNOME, but since KDE uses QT and GNOME uses GTK, they won't have the same look-and-feel and GNOME tools that edit the way apps look in GTK may have no affect for QT apps).