I'd try supermemo. I've used it primarily for vocab, but also for memorizing longer texts. You can easily create your own sets in Excel and then import them via hotsync. Each card supports six fields and templates can be created for each card as well. Works great.
I'm using Flash! 3.0b2
It's working perfectly (no bugs discovered) and does what it should.
Cards that you know will be asked less often.
You can easily import from Excel, text files and others. I imported German-French basic vocabulary from a list I found on the internet; amazing. You could easily import the following page (5 min) http://mypage.bluewin.ch/a-z/cusipage/franalle.html
You have features like categories, merge DBs, import from Memo, etc
Of course you can use the program for other than vocabulary learning...