Jsb is spot on when it comes to smaller sites & minimal traffic. You can get a godaddy account for about $5 a month and that's usually plenty for most websites, add in the domain (url) for about $15 a year and you're in business!
Cost will increase significantly when performance, availability and content delivery are critical - but luckily it's all scalable.
Example - this site; I start with my $10 domain name (per year), put it on a dedicated server with sufficient resources for 25-50 concurrent users ($10-30/month - but in my case it's subjective to whatever I have laying around/idle), and add performance as the demand on resources increases. More resource = more cost.
Additionally, I have a certain allocation of bandwidth per month, determined by my service provider. That allocation is equal to about 500,000 individual page loads (a page load is every time a user opens a single page on the site). When users exceed that amount, I just pay for another chunk of bandwidth. Each additional 500k page loads will cost me about $25/month.
Finally, there can be significant cost associated with technical support resources - basically administrative staff available 24/7 to maintain and support your hosted website or server. The more you need these guys and their services, the more they'll charge
.
Just a few years ago, endeavors such as this were far more costly - three or four times more. Advancements in server virtualization have made it much more reasonable, and as we move forward we are getting more performance for less $$$. I'm ok with that!
The primary source of income I have seen for most community or discussion sites is ad space. Website owners earn money either by users clicking on the ads (I've seen anywhere from $0.50 to $1 per ad click) or number of impressions (usually only pennies per one thousand impressions, an impression is any time someone just views an ad on their screen - no interaction with it).
I might have rambled on a bit too much here, hopefully that gives you the perspective you were looking for!