Hardware vs Software firewalls is an apple/orange comparison, I think. They are both useful for specific reasons, but neither is an appropriate substitute for the other, in my opinion.
The firewall you find on your router is only good for blocking incoming data which leaves you vulnerable to the nasty stuff that might get on your system by your own doing. These firewalls have no real fine-grained controls. It is also somewhat inconvenient having to manually configure ports etc...However, it is also going to be more difficult to circumvent than a software firewall and offer fairly reliable protection against incoming baddies.
A software firewall will block incoming AND outgoing data. Software firewalls give you a LOT of flexibility when it comes to options, features and offer a lot of convenience. Because of this, software firewalls can be much more effective in protecting your computer than a simple router firewall. However, the issue is that software firewalls can be more easily compromised because they run on an inherently unstable platform (your personal computer). All it takes is one wrongly configured item, a compromised software that was allowed onto your computer or an exploitable bug in the firewall itself (complexity breeds exploitability) and poof.. your protection is gone.
The obvious answer is to run both. But I think you're 'safe enough' with running either solo.. My preference would probably be the router firewall + safe online practices, but if you're afraid of the stuff that might end up on your computer, then a software firewall is going to be your friend in the event you end up with things that exploit your computer by making your computer a server (key logger or spyware, for example).