MusicTheory.net has a flash application to practice chord recognition. It doesn't go into more complex chords like 7#9, but it presents 10 chords (typical four-note chords and triads). That's a starting point. There must be applications supporting more "advanced" chords but I'm not aware of them, so I typically end up programming my own.

I once heard from a pianist that the chord you know is what you will hear in a song. This means that if you hear a song and hear a Dominant #5b9 and you were very familiar with dimished chords you will first interpret the chord you heard as a diminshed chord my advise is to learn the different chords. Go to apassion4jazz.net (something like that). You will see a lot of chords there. Start practicing them and get accustomed to their distinct sounds. When you hear any of them in a song you will most likely stand a better chance of picking them. Taking risk is borne out of passion. Passion is almost equal to success. Cheers.