I use mikrotik RouterOS at most of our sites, has simple queues (based on target address/ip/ip range/packet mark) or full queue tree's for setting up your own QoS systems as well.
Probably the best part about this setup is that I can also use burstable queues, that allow a user to burst above their allowed transfer speed for X amount of time.
Eg: I can assign a queue to a user that limits them to 10Mbps/256Kbps and then set a burstable queue rate of 20Mbps/512Kbps over 60 seconds.
This allows regular web-browsing users etc etc to download at 20Mbps with no problem, soon as a user begins downloading thou, their speed is cut back to the 10Mbps limit.
You can get a preinstalled router from them along with a licence for much less than you'd pay for most decent home-grade routers. (See their sister site http://www.routerboard.com)