A couple years ago, my Reddit addition was getting pretty bad, and I needed a break. I used an old and simple trick where I modified my
/etc/hosts file to point reddit.com to 127.0.0.1, and stuck a simple webpage on my localhost that read, simply, "Get Back to Work" in big bold black letters on a light grey background. Since Reddit was effectively replaced with that page, I didn't go back to Reddit for more than a year. Lately, I've been back a bit, but when I feel the urge getting too strong and, I've been using a helper to keep me on-task.
Concentrate is a little application that sits in your menubar. You can use it to define tasks, and set those tasks to block access to websites, applications, open applications automatically, etc. It's a great help. My primary "Work" activity is pretty simple: block Reddit and open OmniFocus. Nothing more to it. It's set to a period of two hours, and that's usually enough to get me past the task I'm trying to put off. Great, great app.