I've used a song from the Barenaked Ladies (woot Canadian content!) called 7,8,9. It has a bunch of fun word plays (when you joke about something using words; clever use of words), for example seven ate nine. These are great for your intermediate students and even with beginner students working out what these mean as a group is great.
Some ideas for how to use songs:
1) Cut up the lyrics and let the students listen to the song while putting the lyrics in the right order. Helpful tip: Make sure to mix up your lyrics before cutting them up. I've had students just try and line up to my cuts, totally not the point of our exercise!
2) Standard fill in the blanks. An oldie, but a goodie.
3) For intermediate to advanced learner's you can switch some of the words in the song with rhyming words. Depending on their level you can tell them how many switched words there are, or underline the words that have been switched or let them have a go at it in partners. If you are having difficulty finding rhymes I like to use this website http://www.rhymezone.com/.
4) Let them watch the music video of the song and have them guess the story (this only works when there is a music video, unless you a exceptionally skilled in youtube videos). Then read the lyrics together and see who was closest to the real story. Another version of this is to have a set of pictures that relates to the text in the song and let the students listen to the song while they put the pictures in order.
5) Listen to the song and try to sing along with it. This works especially well with young, beginner learners. I haven't tried this with adults yet, but depending on the song I could see it working!
6) I used the BNL song with a group of intermediate students and we just looked at the words and phrases that were unknown to my students and discussed the German equivalents. You could then move the discussion into English idioms (see my post here for some examples). We also talked about cultural differences for example in German cats only have 7 lives while in English they have 9.
Anyways that was a very short list of what you can do with songs in an ESL or EFL classroom.
Here is the video for BNL 7,8,9. You google the lyrics.
Another good song from BNL is If I had a Million Dollars, great for teaching the 2nd Conditional.