Ummmm,,, I humbly beg to differ. In my case, I have a Netgear router, which has both NAT + SPI firewall built-in. My understanding, and I could be mistaken, is that a h/w firewall trumps a s/w firewall.
There are lots of misperceptions about firewalls. Most firewalls are not that intelligent, they simply limit which ports can be used, and which direction they can be used in.
A simple example is a network administrator at a small company wants to put their whole network on the internet. So he buys business DSL and a router, and boom (to quote Steve Jobs), they are all online. But the admin can't always control what people do with their computer. Maybe joe schmo at the company wants to set up a web server, but sets it up wrong and now people from the outside have access to all of his files, and by extension, any files on the network that he has access too. The network admin prevents this situation by blocking all incoming requests on ports 80 and 8080 -- the default http and https ports. Now nobody on the network can web host on those ports, but they can still browse the web because outbound requests are still allowed.
Most firewalls don't do much more than this. There is very complex software out there that takes it to another level, analyzing network traffic and looking for suspicious events. That software is much more expensive, and only in use at large corporations and government organizations, etc.
So multiple firewalls can't really hurt, although it could be confusing/annoying if you need to reconfigure your network. Hardware firewalls and software firewalls can do all the same things, too. Actually, a "hardware" firewall is still just a microcontroller running some software program anyway, so the distinction really is whether the firewall is running on an individual workstation, or it's running on some peripheral device where it can provide coverage to the whole network.
One principle that most people miss is that the firewall is really only for the network admin. When certain nodes on a network have a trusted relationship with each other (say I have a share on the main server that is always mounted), then compromising my node compromises that server as well. The admin uses the firewall to protect people from themselves, as it were. In my example above, the same situation could have been avoided by Joe Schmo simply not opening up his HTTP port to begin with.
So on your personal computers, a firewall is redundant, because you already know (hopefully!) what software you're installing. The only real reasons to keep it turned on are 1) it usually doesn't hurt, 2) it protects you from yourself, 3) it protects you from spyware that might try to open a port on your computer. In practice, these turn out to be good enough reasons just to leave it turned on all the time.
Anyway, it always bugs me when IT types of people try to talk about things they don't know anything about. Most IT tech support people are *not* as savvy as you would think, but people think they have expertise and so they listen to anything a techie says.