The starting blocks for your own Drupal community
Drupal is famous for its community, the collaborative effect of thousands of people working together to build a better product is amazing. Due to this it's no surprise that there are a fair few modules out there to help create a site with your own community. I recently had to do just that; tasked with creating a site centred around two groups of people interacting with various permission settings. Here are a few good modules I used.
Registration + User profiles
Making registration easy is one of the best ways to ensure people get involved, no-one wants to go through a massive amount of hassle to start replying to an interesting comment.
Email Registration - A module that allows users to register and login with their email and password rather than a username. A username is automatically generated based on the email address so beware of this when displaying user information. I would rarely use this alone but combined another module I'll mention later it works perfectly.
Register with Picture - One of those modules that does what it says on the tin. Allows a user to upload a picture when they register, simples, no?
Real Name - A fantastic module that I used in combination with email registration. It allows you to select tokens to create a 'real name' for the user that replaces the default username across the site. I did this simply by adding a 'display name' field to the user profile and using that single field token as the real name. So instead of seeing the username value across the site, you see the 'real name'.
There are some other modules that help you massively configure the user profile, such as Profile2 (allows you to set different fields for different profile types). Auto assign role exposes the user role field to the user registration page (with customisation so they only see certain roles etc). I didn't end up using these as it did too much or wasn't quite right, but well worth a look into.
Posting + Moderation
Depending on your audience moderation may be light or it may be heavy. You may want a team of moderators or you may want people to be able to moderate their own posts.
Comment Access - Allows users to administer, delete or approve comments on only nodes they create, useful depending on your situation.
Hidden comment - Allows users to hide a comment instead of deleting it completely. When they hide it they can select from a list of reasons (entered via the cms) with the reason displayed to the users.
Edit Limit - Sets a time or count limit on when a node or comment can be edited. Meaning that once a user posts a comment they can only edit it x times or within x seconds/minutes/hours. Useful for allows users to edit their typos without allowing them to edit their comments unconditionally.
Flag - An all round useful module. This time used for reporting comments, alongside core Actions and Triggers you can have email alerts sent when a comment is reported.
This was just in my case, as always you should review it case by case and determine what modules may be useful to you.