Almost like a less offensive Urban Dictionary, IdiomDictionary is for those phrases that everyone seems to understand except you—instead of getting them to explain it, you can look it up in their giant database of over 5,000 idioms.
IdiomDictionary is pretty simple to use; you just type a phrase in the search box and it will explain to you the idiom's meaning. It does have quite a few, including a large number that I had never even heard of before. You can browse by letter, if you'd like to just learn a bunch of new idioms you can rattle off, but the search is its most useful function.
Unfortunately, it doesn't go the other way—if you're looking for a clever way to say something, you can't look up an idiom for that idea. I can't search "relax", for example, and come up with "hang loose". You can only search for idioms themselves. It's kind of a bummer (that would be such a useful feature), but it's still incredibly handy for those situations when you hear a phrase you just aren't familiar with. Hit the link to check it out.
Update: Reader BishopBlaze cleverly points out that to do a reverse idiom search, you can just do a site-specific search on Google. For example, if you're looking for an idiom for "relax", just search site:idiomdictionary.com relax
on Google to find a few.