To understand Wayland, you have to understand X.
An X server is a program(s) running as root, which coordinates all of the aspects of a GUI interface. This includes all of the drawing and updating to the display modules in the kernel. X also managed input devices like the mouse and keyboard.
However, X is not the window manager or the widget set. X simply listens to the client, and draws what it is told to. Thing like Gnome or KDE actually handle what is to be drawn, and then interface with X. If you think about that for a moment, you can see the silliness inherent in this design. The client is doing all the layout, and then having to go through a middleman.
Wayland basically says, if the client is doing the work, then let them handle all of the drawing and such. Wayland only manages the communication between the clients (windows usually) and the kernel modules. This allows programs quicker access to the framebuffer.
I think the best analogy would be the back when linux moved to udev instead of devfs. Instead of having an abstraction layer all clients had to query, a kernel module was added which clients could access directly.