Virus - Technically, a virus infects another file (attaches or inserts itself into it). They usually infect program files or MS Office documents. From there, it can replicate, do damage, etc. Unlike a worm, these do not function as a stand alone (except possibly to infect a given file).
Worm - This is almost identical to a "true virus", except that it lives on its own and generally doesn't infect other files (although it can replace them). Usually, these copy themselves using e-mail, networks, disks, etc. Again, these are very close to a true virus, and can do the same kind of damage.
Trojan Horse - This type of program doesn't copy itself but does do damage to your computer. These types of programs rely on people to pass them around and to run them. They do not e-mail themselves. The idea is to make the program look like it's something harmless, like a screen saver or joke, so it gets sent around.