I've done several lighting effects with just loudness and the "beat", with enough random variations to keep things interesting. But, frequency-activated effects are very popular.
With a microphone you need a preamp. The easiest thing is to get a [u]microphone board[/u], which has a microphone & preamp built-in.
Also since the Arduino can't read the negative half of the AC audio waveform, the input has to be biased. Most microphone boards have biased outputs, but of course a normal microphone preamp puts-out a pure AC signal.
For audio frequency analysis there are FFT and FHT libraries, or if you need 7 frequency bands or less, there is a handy little 7-band chip called the [u]MSGEQ7[/u]. The MSGEQ7 takes a line-level signal and it puts-out a (multiplexed) varying-DC voltage so you don't need the bias circuit. (The chip is mis-named as a graphic equalizer... It's NOT an equalizer... It's a spectrum analyzer "effect" chip.)
The Arduino can only directly-drive one or two regular-little LEDs so you'll need some kind of driver circuit for LED strips, or relays (or solid state relays) for AC lights, etc. Regular relays also require a driver, but you an get relay boards with a built-in driver. Or, there are lots of AC solid state relays that can be directly driven from the Arduino.
Or, if you have DMX lighting you can get a DMX shield (add-on board) and there is a DMX library (somewhere).