Software router and firewalls work, but you suffer a performance penalty on the computer acting as the "server" and the "server" must always be on. Also, I have never tried to use them to create a mixed network.
Save yourself the grief, if you can afford it, and buy a hardware router/firewall, like the D-Link Di-704 4-port router, DHCP server, and natural firewall. This is a separate piece of hardware and is always on, none of your internet connections are dependent on another computer, and none of the computers suffers any performance penalties.
I have used this configuration with several Mac/PC mixed networks and they work terrific with either static or dynamic IP addresses. Also, with the addition of software like Mac-PC LAN orDAVE client, you can share files amongst all the computers on your network.