Do you use file sharing on that system? If not, then remove the File and Print Sharing from your Network configuration. That will close/remove port 445
You can disable NetBIOS in the TCP/IP properties if you don't need to lookup or connect to the system on a Microsoft network. That will take care of port 139.
Set your Local Security Policy "Security Options" so Anonymous Users cannot enumerate the SAM. To keep users from port 135.
If you need File/Printer Sharing and NetBIOS, then you can set IPSec filters to block traffic to your allow only your intranet and particular ports for the internet (HTTP, HTTPS).
The firewall option is also good, but in can be a hassle to setup, not to mention the money. Some firewall apps are free for individual use, but cost for business.
I use ZoneAlarm Pro on my systems, I like the pop-up when telling me someone is trying to access my system and being able to "look them up". On the systems in my department, I'm using IPSec filtering and limit incoming traffic to our intranet and some ports to the internet.