Charge by the hour, but make an estimate of how long you'll be taking, total, then require half your total fee in advance. (If you don't know how long you'll be taking, then pull an estimate out of your ass. If you're ready to go pro, then you know enough about your work habits to at least take a guess, based on the project requirements.)
The advantage of asking for half in advance is that you have at least half the money up front. If a client is going to pay you "when it's done," well, you and he probably have VERY different ideas of what "done" means. But you need to charge by the hour, so that every time the client decides to add a feature, you can say "sure, I can make your three-page site use database-generated Flash. It'll cost you an extra X dollars." Trust me, you NEED to be able to charge the client extra for anything not covered in the initial proposal, because otherwise they'll walk all over you. Rule One is "never work for free."
Hourly rate is widely variable. In metropolitan parts of the USA, $25/hour for a basic HTML layout/design is a real bargain. If you've got demonstrated skills (or if you're a good salesman) you might be able to get as much as $50/hour, even for a relatively basic site. If you're just adding content to an existing site, without changing the layout or anything, that's more like $15/hour. Get what you can, of course; I once got $28/hour for essentially the same thing.
For more advanced programming, like dHTML or anything database-related, start at $50/hour and crank it up to $100/hour if you see even the slightest opportunity. If you're coding your own forum, this is the price you demand.
If you're just integrating a third-party forum, without a lot of customization, you'll charge whatever you charge for basic HTML design. After all, a third-party forum will just walk you through the steps, and then you change the templates to blend somewhat with the client's site.
For Flash, well, Flash has been losing popularity lately, at least for run-of-the-mill web projects. It used to be that you could run down the street yelling "FLASH! FLASH!" and people would throw haybales of money out of their office windows at you, but nowadays, unless your client has a real need for Flash, charge in the $30-60 range for a basic flying-text-and-image intro, or for basic Flash nav elements or whatever. If it's a more complicated Flash thing, like an entire site, or advanced programming and animation, you can still command a price from $50 well into the $150 range.
If you're in a more rural/exurban part of the USA, cut those prices by maybe 30%. If you're smack in the middle of a metropolis, triple these prices. (NYC freelancers get $200/hour, or they don't work at all. There's no middle ground. Got a friend in Manhattan doing ASP, and he's always either garnishing his sushi with shredded hundred-dollar bills, or he's eating uncooked ramen because he can't pay for heat.)
If you're outside the US, I have no clue.
A little trick from the Doc himself, right here. I use this gag myself, and it never fails to amaze.
I recently got a full-time job, though; everybody give me a cheer! At last, I can start repaying my parents the $1700 I owe them, instead of living hand-to-mouth like an internet hunter-gatherer.
[This message has been edited by Perfect Thunder (edited 01-20-2002).]