The real difference is not between outbound and inbound. Classical firewalls have been blocking outbound connections depending on ports since forever.
Firewalls for Windows (I first saw it in ZoneAlarm) introduced application specific filtering. So you can allow one application to connect to HTTP servers and disallow another application from doing the same.
Edit: I was just reading this article an hour ago, about how to programmatically add rules to Windows built-in firewall using Delphi:
That's not recent, most firewall do outbound traffic as well, and there are software solely dedicated to outbound traffic management, e.g. http://www.obdev.at/products/littlesnitch/index.html