What's an easy and effective way to protect yourself from viruses? Connecting your cable modem or dsl modem to a router instead of directly to your computer. The reason is simple, when you connect your computer directly to your modem, attackers have access to and can interface directly with your computer. By default, unless you are running a good firewall, all ports are exposed. Theoretically this shouldn't be a problem since the operating system should be secure and won't allow unauthorized access. Unfortunately, virus writers are quite good at circumventing security.
I tried an experiment recently and created a Windows 2003 Server running Microsoft Exchange in a virtual machine. I forwarded every port from my router to this virtual machine. To my surprise, having left this machine idle and running 24 hours a day, within four days, I had a virus on this machine! Of course, I just deleted the entire machine after it was infected. This was easy to do since I was running VMWare. I don't know how the virus got there or who put it there, but this justs demonstrates that people are constantly polling every IP address looking for vulnerabilities to attack.
So, how does a router help? Well, a router sits between your computer and the internet. By default routers don't expose any ports unless you specifically configure port forwarding. This makes it really difficult to get to your computer from the outside since the router is basically discarding all unsolicited requests to communicate with computers on your internal network. I haven't heard of any viruses that attack your router's firmware, because I would imagine that it is difficult to do.
So if you don't have a router, I'd suggest you get one. They're pretty cheap these days. However if you don't get a router, the other option would be to get good personal firewall software and have it block the ports. In my experience the problem with software based firewalls is that most people don't understand how to configure them and the default configuration is set with the security very high so that IM clients, Windows networking, and other useful things are blocked by default. But if you can configure it correctly, a software based firewall is a good solution as well.