I would like also suggest winroute for internet sharing. It has alot of useful options and taught me alot about networking. You have to go through the help files a bit but once you understand how it works it is very powerful. Right now Im running a quake3 server off of my client machine that is accessible from the internet.
Of course it has a nat,firewall and packet filtering and every other little deal. Its just a little bit more advanced than ics and sygate.