To prevent spam relaying, alot of mail servers require authentication before sending mail these days.
Here is how to do it (thanks to Dave Wanta for this tip).
using System.Web.Mail;

.
.
.

MailMessage mail = new MailMessage();
mail.To = "email@somewhere.com";
mail.From = "email@somewhereelse.com";
mail.Subject = "Set subject here...";
mail.Body = "Mail body text goes here...";
//basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");	
//set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "username"); 
//set your password here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password");	
//your real server goes here
SmtpMail.SmtpServer = "mail.smtp.com";  
SmtpMail.Send( mail );