I would always recommend you have 2 lines of defense and a software firewall would give you that.
SPI firewalls tend to block ports but not applications. If your system is infected a SPI firewall may not block the virus from trying to infect others. A software firewall should stop infected systems from infecting others by blocking access by program name/location/version etc as well as ports. So only valid apps will be allowed access to the internet.