I just tried out SelfControl.app, and it's actually really effective! If you edit /etc/hosts while it's running, it replaces the entries immediately. And somehow I couldn't get any blocked websites to load even after quitting the app and then editing /etc/hosts. I'm not sure how it's doing it, but to be honest, it would be far less effective if I figured it out!
EDIT: I couldn't help myself :/ Turns out that it also adds some ipfw rules: http://www.joshuakehn.com/2010/10/25/Defeating-SelfControl.h...