CPU handles most of a computer's normal computations: dealing with files, playing music, doing general math, handling the operating system. It looks roughly like this: http://images.anandtech.com/reviews/cpu/amd/phenom2/965/phenom2965.jpg
It's essential to any system.
The GPU is an add-on processor, designed to do the calculations for a computer's graphics. It has a much larger number of cores than the CPU, at a significantly lower number of cycles per second. The GPU is generally used for gaming and for applications like Photoshop, where images must be rendered quickly. It looks like anything between this, a low-end GPU: http://www.ixbt.com/video3/images/rv670-4/powercolor-3650-front.jpg
and this, the best one available, which is larger both because of a larger chip size and because it contains two large heatsinks: http://www.bjorn3d.com/Material/revimages/video/Nvidia_GTX_590/gtx590.jpg
A GPU is not essential for a computer, but is necessary if you want to play games or deal with any kind of intense graphics. Some of the newest CPUs (2500K) come with decent built-in video processors, but these still don't stand up to discrete GPUs.