"Should servers run their own firewalls?"
I love questions like that!
There are, of course, arguments for and against, but the only answer is what squillman alludes to...another question.
The needs of any one computer's firewall are directly related to the surrounding network topology and intended usage.
If you have a servers in a network otherwise composed of other servers, who's primary job it is to interact with the other servers on that network, the entirety of which is firewalled appropriately from the internet-at-large (and any other appropriate internal networks), then I say no. There's little need to impose the additional management overhead of implementing, documenting, and maintaining per-host firewalls. I would recommend a Network Intrusion Detection System (NIDS) so that you can monitor host behavior, and as always, make regular backups and take them offline (ie eject the tapes), but otherwise, it's just more stuff for you to remember to change as the needs of your servers are adjusted.
If you have a server that is isolated on the "external" side of the router, otherwise unprotected from the internet, or which requires placement that can't make use of a hardware-based firewall-type device, then yes. If, for whatever reason, your webserver is all by its lonesome outside of the cozy confines of the internal network, then yes, firewall that puppy, and do yourself a favor and make it deny-by-default. If, for whatever reason, that server has some sort of privileged access to internal servers via VPN, static route, or dual-homed network cards, make sure to firewall the outgoing connections too. There's always the chance that whatever-non-root-running daemon you've got can be compromised and initiate network connections attacking vulnerable, trusting internal resources. Stop it before it starts.
If you have a user desktop, firewall it. Make it part of your image, use a firewall software that supports Active Directory (or whatever centralized control you've got) administration, and specifically allow the services that you need. Your users will get malware. It's inevitable, and if sufficiently "mal", it will try to attack your other resources. Make sure you see the alarms when this happens.
I'm sure I missed some situations, but generally speaking, the security of a firewall is a trade-off in manageability and usability. Sometimes it's worth it, and sometimes it's not.