Good answers already, but just to be a little more clear on some points:
html is THE mark-up language of the world wide web. It is the framework around plain text that tells your browser to represent it as a web page.
xhtml is not just a more pure version of html, it is and html form written in valid xml, so an xml validator would validate the html. It has a lot of potential for making html more useful beyond the Internet, but because of the widespread use of normal html (and it's 'forgiveness factor'...you can write quiet poor html and get away with it...web browsers on the whole just ignore your poor mark up and carry on, unlike programming languages which crash when they meet errors.) As a result, xhtml is still stuck in the 1.0 version and development on 2.0 has been put on hold while they work on html5 instead.
css is the styling. Basically it says - you write a header in html, css will let you make it blue, or bigger, or in a different font and so on.
xml was already answered well by the others...it is a way to mark up plain text files to give it a structure that a parser can read. Perhaps the most well known example of xml at the moment is RSS, where updates from websites such as news, blogs or forums can be subscribed to and is sent in an xml form which your reader parses into nice content again.
JavaScript is a browser side scripting language. It makes your page interactive on the front end. If you want someone visiting your page to get a message when they click on something...use JavaScript. This thing on the right as I am typing this that gives me messages is generated by JavaScript. It makes stuff happen while you are on the page. Because some 70% or more websites use JavaScript it is by far the most widely used programming language.
The answers before gave a good explanation for flash. One thing about flash that is rather different to most web technologies is that it is proprietary...you have to pay to develop in flash. On the whole, the Internet/world wide web is build on many different technologies that are all open source.
Beyond the browser languages, where JavaScript dominates by a huge margin, you also have server side scripting languages. These scripts run on your server before sending you the page. It could generate a page by sourcing information from various places, or it could be a script that replies to a web form on your page. In this area there are many languages...PHP, Perl, Python, asp. You can basically use any language...but languages like PHP are designed for the job. If you were to try to write server side scripts in C you would take days longer than PHP. But all these scripts only do what they do on the server, and then send the page off to your browser basically as pure html (plus some things like the browser scripts style.
Summary of the main things that aid you in webpage designing:
html (and xhtml) - the lego blocks (make with)
css - the paint set (style with)
Javascript - the chemistry set (make things blow up, or just flicker...)
PHP (and it's buddies) - the brains (make dynamic decisions about what goes into your page)
xml - the swiss army knife. (structure data that can be used for many things)
Flash - well, the name says it all already. Flashy, expensive, but really does cool things.