This question can be more problematic than you might first imagine.
For example, some posters have suggested using asterisk to signify "required", the problem with this is that some websites actually use the reverse and put an asterisk next to the fields which are optional. Users don't explicitly know if an asterisk is a "required" field or an optional field by glancing, and have to investigate further, breaking their flow, frustrating them about the form process and can in some cases lead to abandonment of the form all together.
RussellUresti reply reiterating Luke Wroblewski's research in "Web Form Design" to simply write "required" next to the mandatory fields has also been (in my 10 years experience) the approach which has yielded the highest throughput on forms and lead to the least confusion.
Related and something else to consider, if a form field is optional, can you use logic yourself to get the answer without asking the user?
For example, if you need to know if the user is Male or Female, you can infer an answer in some cases by the title they choose for their name (miss, mrs etc implies female) and removes the question from the user.
Another point to consider is for things like address fields, if you can ask the postcode and do a postcode lookup, showing only the address fields if the user opts to manually enter the address or if the postcode lookup fails you can avoid alot of optional data that may make the form look longer than it actually is and cause the user to leave.
In my experience alot of the time if a field is optional, there is a large case for removing the field altogether. Obviously this isn't practical all the time, but some cases it may be and will help reduce the visual clutter, for whatever approach you decide to take.