I have tried various methods to teach vocabulary - mnemonics (memory 'tricks'), word games (including quiz games), flash cards, etc. However, the most effective way was already hinted at in the post on 'graded readers'. The very best way to learn, and therefore teach, vocabulary is IN CONTEXT. When students see new words or expressions in context, there are two advantages: 1) students remember the words better 2) students see HOW the words are used.
When I teach, I use all kinds of stories. I use children's stories, news stories, jokes, (click to see the best jokes I have collected), magazine articles. Sometimes I introduce the difficult vocabulary first, sometimes I let students read quickly first to get the main idea. I always have many questions prepared before class. Some are relatively simple comprehension questions, some are discussion questions. Most of the questions encourage students to use the vocabulary when speaking, but I don't want to force them to use any words unnaturally.
Now, there is one advantage to teaching vocabulary out of context, from word lists or with games of any kind. Students see the words they are supposed to study and believe they must be making progress. At least, they feel that way in class. When they leave the class, they don't remember the words or don't use them correctly and so are misunderstood. By then, of course, they can't blame the teacher, they blame themselves! So teaching vocabulary 'out of context' is safer for the teacher. Teaching vocabulary 'in context' is more effective.
Anyway, this is what I have observed in teaching and in learning French, Spanish, Japanese and Chinese. Other opinions are welcome!
Teacher Joe