If you know the word and you're looking for synonyms, use a thesaurus.[1]
If you know the general idea and want a more precise word to describe it, I'd look into WordNet, especially concepts like hyponyms (subsets of a general word, car -> ambulance) and troponyms (different ways of performing the word, useful for verbs, e.g. eat -> slurp, gobble, peck).[2]
If you know the context and you want a word that "sounds good" in that context, use a collocations dictionary.[3]
[1] http://www.thesaurus.com/ [2] http://wordnetweb.princeton.edu/perl/webwn [3] http://www.ozdic.com/collocation-dictionary/pupil