Lozza, did you even read what I wrote? I said to get rid of the "$from" argument - your change will not make any difference because the parameters are still wrong!!! The mail() function accepts the following parameters, in this order: to, subject, message[, headers]. NOT: to, from, subject, message, headers (which duplicate from), or your suggestion: to, from, subject, body.
Here's the correct code, along with proper error checking:
// $name and $email are gotten from POST, or DB, or GET, or COOKIE, or SESSION, etc.
$headers = "From: $name<$email>\r\n";
@mail("$to", "$subject", "$message", "$headers") or die("Error msg goes here!");
Edit: Sorry if this is a bit harsh but I want cswales to understand the right way to call the function before he learns how to implement error checking.