basically I would put together or buy a medium spec machine
install FreeBSD or linux on it to do the Webserving and Mailserving, configure each so its all appears to be working
then if you already have a domain name of your own registered then I would get some DNS Hosting to store your DNS record information so that people can get to your webserver. The main reason for hosting the DNS somewhere else is so that in the event that your machine fails, or the line does, people can still resolve your IP information even though they cant get to the site completely. People are more likely to believe a site exists if the "Connection Times Out" than if the domain cannot be resolved.