Do you intend to run all these on a single computer or do you intend to separate them?
For firewall/bandwidth limiter, you should use PF, and you can easily use
pfSense for that. With a good machine and some creativity, you can nudge the machine to also run your Web/DB services if it has the right specs, otherwise if I were you, I'd NOT run any other services on the firewall machine.
IPF doesn't have much on bandwidth limiting on its own, so going that way is useless, imho. IPFW and PF are best candidates. Now depending on how comfortable you are with the rules language structure, you choose between ipfw and PF.