one word: "
htmlize"
well, actually more, depending on how you pronounce it: "htmlize.el" is actually the file that you need to perform this minor miracle.
it was written by Hrvoje Niksic, and is downloadable from
http://jagor.srce.hr/~hniksic/htmlize.el
Once you've gotten the file, byte compiled, (you do byte compile all your elisp, don't you?), and installed it, you simply do M-x htmlize-buffer, and presto!, a miracle of transsubstantiation occurs, and you have a html that looks like your emacs buffer. hurrah!