I learned in my psychology classes that memory is most deeply encoded when associated with concrete imagery. That is, memories are strongest when they appeal to all the senses and can readily recreate an imaginable scene or context. Rote memorization (e.g. reviewing flashcards over and over) is considered a weak encoding technique because it relies solely on repetition to encode memory. Herein lies the problem with remembering new vocabulary, especially new vocabulary in a second language. Is there some way to study it using "stronger" memory encoding techniques? Rote flashcards are boring and don't work very well. The memory of them is literally gone in a flash.
Being an IT guy and a student of Japanese, I'm expectedly a fan of using software to study. I've tried just about every type of Japanese learning software there is, so here I've compiled a list of my favorites:
The Rosetta Stone (PC / Mac) - www.rosettastone.com
The Rosetta Stone is the Ferrari of language learning software. It's fun and extremely interactive, engaging all the senses to maximize retention. It's automatic lesson review feature quizzes like a real teacher, and it's the only software I've ever found that supports voice recognition, making speaking practice possible. It's by far the software that comes closest to classroom learning.