I've recently used the following code which seems to work well. Simply create the HTML page (test_file.htm) you wish to send as a mail, and the script below reads it in and emails it out.
// Define the to/from/subject parameters
$recipient="user@destinationmail.com";
$from="From: user@emailaddress.com";
$subject="This is a test HTML email";
// Build the mail header
$xheaders .= "X-Mailer: PHP\n"; // mailer
$xheaders .= "X-Priority: 6\n"; // Urgent Message!
$xheaders .= "Content-Type: text/html; charset=iso-8859-1\n"; // Mime type
$xheaders .= $from;
// Read contents of html file (intended email message body) into a string
$filename = "test_file.htm";
$fd = fopen ($filename, "r");
$mailbody = fread ($fd, filesize ($filename));
fclose ($fd);
mail($recipient, $subject, $mailbody, $xheaders);
Not sure if this is the most elegant way of getting the job done, but it works.