Hyper Text Markup Language (HTML) was originally created as a means of structuring documents in a logical way - documents (often scientific) that adhered to a structure of headings, subheadings and paragraphs. However, along the way the semantics were lost - tags were used for things for which they were never intended - tables were used for layout purposes, headers to create font effects, alt tags to provide inappropriate alternatives to image content and so on. One particular problem was the use of font tags throughout the code in order to change presentation. Imagine a site with 2000 pages, each containing 20 font tags and your Project Leader says, "OK, let's change the site font from Times New Roman to Verdana". This would mean changing each font tag by hand - a Herculean task.
Then along came CSS (Cascading Style Sheets). CSS was conceived as a way of styling html pages without using html tags. There are many advantages to using CSS, the main ones being:
As you can see, CSS development is the way forward, with many of the major sites having already changed over (check out this list of major players who have made the switch), cutting down on long-term maintenance costs and making life easier for those of us who are not fortunate enough to have all their senses intact.
XHTML (Extensible Hyper Text Markup Language) is an XML-based, standards-compliant version of HTML which is much stricter and results in cleaner code, which again assists with accessibility, maintenance and download times. Putting these two together, you can clearly see the benefits of using xhtml and css to code your website.