"Odor", or "odour", is a neutral and fairly formal word. An odour is usually unpleasant, but it can be light or heavy, and the word doesn't suggest any opinion or emotion on the part of the speaker.
"Reek", as a noun ( or more usually a verb) is a strong word used to refer to a strong smell. It is also an emotive word : it tells us that the speaker is annoyed or disgusted in some way.
For example, you might say "The hotel room reeks of damp and stale cigarettes!". A synonym here would be 'stinks'. However, if you are writing a letter of complaint to the hotel, you wouldn't use the word 'reek' or 'stink', because these words would sound too informal and emotive. Instead, you would use a more formal and objective phrase, such as 'an unpleasant odour'.
I hope that makes sense.