How would he have a virtual host that the users use the same domain name for both? How does the server know when to redirect to the mail server? Having a port redirect in place for the domain isn't the same thing as a virtual hosting setup. Virtual hosting means a single web server running with a single IP receives the traffic, and displays the website based on which domain name was reached. Each domain name is different, not just a domain with a different port on it. (A separate site could maybe be run on a different port on the same machine, but that would still be considered 2 servers, not virtual hosting.) Using the same domain with just different ports to reach two servers would require users to specify the port in the URL they type in.
After seeing the response, it sounds like you're trying to use a single domain, but you want two websites to be visible, one the main page and the other a webmail service. This should be easy to set up, a couple of ways.
A single web server can serve the main domain as well as a subdomain. If your domain is goobee.com, then
www.goobee.com would be your main site, and webmail.goobee.com would be the subdomain where your webmail configuration is. Only one server needed, and no need to be concerned with ports. Unless you're running some heavy traffic, a single machine should be able to deal with both parts of the site.
The other option would be to set up the subdomain with a redirect to another port (this would be done through whoever maintains your DNS records for the domain, probably your domain registrar). The users who try to reach webmail.goobee.com wouldn't have to worry about the ports, they'd be automatically sent to the particular port you specify, and the web browser wouldn't care. That way you can still maintain two separate servers -- your router (presuming you are using a router, which you'll need to do with only one IP and two computers) just needs to be configured to forward port 80 to the web server, and whatever other port you chose goes to the mail server.