A Simplified Explanation
HTML is the "language" that web-pages are written in when coded "by hand." Often, there are WYSIWYG editors available that will write this code for you, simplifying the process of producing HTML.
While they may be simpler to use, many web-designers and developers find them too limited for making complicated layouts and functionality (some editors are also notorious for writing incorrect code, such as Microsoft Frontpage), and so write the code "by hand" in a plain-text editor, such as Notepad. Most WYSIWYG editors also provide a code-view that allows you to insert HTML into the page directly.
HTML, a subset of SGML, and developed by a group of physicists at CERN, is a markup language designed for storing all the data needed by a web-browser to render (display) a web-page. However, this approach is being deprecated in favour of the combination of XHTML (a subset of XML) and CSS.
CSS is a markup language used to "style" the elements of a web page (or other SGML/XML-based document). It was designed primarily to encourage the separation of presentation and content, so a developer can change the layout of a whole website by altering a single CSS file.
Another advantage of CSS is that it allows the same markup page to be displayed in a number of different ways depending on the renderer, and provide better support for screen-readers, handheld devices, and printers.
CSS can be embedded in pages (this is used in MySpace) or in separate ".css" files.