There are two main ways, pay someone else to do it for you, do it yourself.
You can get MessageLabs to filter your 'net for ya, cost a bit, but you get to specify what they can see using checkboxes, and you get lovely reports for your boss's at the end of the week/month emailed directly to ya. http://www.messagelabs.co.uk/products/web-security-services/
You can create your own acl's (I use a short bash script to append my acl's and reinit squids config (below)) and maintain them based on your users own actual usage.
#this will quickly add a new domain to the blocklist
#call with the domain you want to block eg; ./block_domain crap.com
#modify to escaped version
domain=$(echo $1 | sed 's/\./\\./g')
#combine and add to block list
echo "Blocking $1"
echo $output >> /etc/squid/denied_domains.acl
#reload squid config (enforces new rule)
squid -k reconfigure
You could write something similar using vbs/batch for windows.
Then, use a neat little program: squid-report.pl (davehope.co.uk) to monitor the day's or week's logs, find the most used sites, or largest downloads etc, add the ones you don't want to the block list. Doesn't take much effort. Eventually (with custom error messages per acl, squid is great for that, I have a link that sends an email to me if you click it, so users can report errors with one click) you can train your staff not to visit porn/game sites at work. And, blocking ad's saves so much bandwidth and increases response!
I find sqstat handy for "Realtime" monitoring.. http://sourceforge.net/projects/sqstat/
Great for finding out who is listening to internet radio and wasting bandwidth!
Then, for your "Reports", you can use SARG: http://sarg.sourceforge.net/
Fantastic program, shows When/Who/What/Where the users were doing online.. ;-)