One of the key things, I think, is having lots of little things to do that you can get immediate feedback from. e.g. Check the forum for new replies, rate new content, see what kind of response their content is getting, etc.
Kathy Sierra has a great article on this kind of thing: http://headrush.typepad.com/creating_passionate_users/2005/0...
Having strict moderation keeps the general quality high, which means it's usually worth checking back to see what's new. There are also multiple tracks of achievement, like hitting 500 comments, etc. so there is always a new badge within striking distance.
You don't even need to have permanent badges. I have a list on the front page of the people who have submitted the most ratings that day. You don't get anything from being on the list, but people try to get to the top anyway. People like seeing their own names.
Having a friendly community is also a big help, since it means that other users are a direct source of positive feedback. That's a bit harder to develop, though.