Andrej Brodnik's class, vita, offers a framework for producing a curriculum vitae. The class may be customised both for subject (example class option files support both computer scientists and singers), and for language (both the options provided are available for both English and Slovene). Extensions may be written by creating new class option files, or by using macros defined in the class to define new entry types, etc.
Didier Verna's class, curve, is based on a model in which the CV is made of a set of rubrics (each one dealing with a major item that you want to discuss, such as 'education', 'work experience', etc). The class's documentation is supported by a couple of example files, and an emacs mode is provided.
The European Commission has recommended a format for curricula vitarum within Europe, and Nicola Vitacolonna has developed a class europecv to produce it. While (by his own admission) the class doesn't solve all problems, it seems well-thought out and supports many EU languages (it omits Dutch and Greek, and all the languages of the 2004 accessions; instructions for creating new language options are, however, there for the energetic).
The alternative to using a separate class is to impose a package on one of the standard classes. An example, Axel Reichert's currvita package, has been recommended to the FAQ team. Its output certainly looks good.
There is also a LaTeX 2.09 package resume, which comes with little but advice against trying to use it.
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=cv