Of course FreeBSD can do all of the above, and more. If you want this machine to be an intranet gateway to the web, though, then you will probably want to install NAT firewall support, and have private IP addresses for your internal network. (ipfilter, and ipfw are the two main choices for *BSD)
Onlamp.com has good article explaining how to set that up. Ipfw is what I use to connect multiple computers at home with my DSL gateway.
As far as the webserver, and other services, you should think carefully here.
1. Often, it's not the best idea to run all your services from the firewall/gateway. The firewall should be dedicated to filtering your network activity, and nothing more. IMO, you should probably use a very cheap machine for this, and choose another machine to run your web and mail services.
2. What type of connection will you have to the web? Do you have a domain name? Will you do your own DNS, or have an ISP handle it?
These questions need to be answered before anyone can give more specific advice.
A good tip for general FreeBSD knowledge is to search through this forum for posts by the member named
freebsd, who sometimes makes us wonder if he isn't one of the core developers in disguise

.
Besides the
www.Onlamp.com/bsd site above, also spend some time at:
FreeBSD Handbook
www.daemonnews.org
www.freebsddiary.org
http://www.mostgraveconcern.com/freebsd/