Using a switch, every PC in your network sees the outside world(isp) and they get the ip from there which can be on different subnet. As a result, when they communicate, they need to go through your isp's router, i.e. slow(adsl modem round trip).

Using a NAT router, PC in your network get an internal ip from the router and they cannot see the outside world(the router would do the dirty job). Then, all ip traffic behind the router would be full speed and only when you need, you go out to the outside world through the router.

BTW, when I said add static internal ip, it is in additional to the dynamic ip given by your isp and is still invisible to the outside world. But I am not sure ip Windows is smart enough to use it first. I know how to do it in Samba.