If you want to make this VU meter effect the LM3915 is probably the way to go. It's cheaper, easier, and there's no programming required!
If you want something more interesting and variable you might want to use an Arduino. I made a "Giant VU Meter" effect with the Arduino and it randomly reverses (goes down instead of up) and randomly inverts (the LEDs turn off with loudness instead of turning-on). And, since it's programmable it does some other flashing-sequencing effects. Programmability also means I can automatically calibrate the sensitivity for loud & quiet songs or volume control changes.
Like a lot of projects, there's input, output, and software...
On the input-side, since the Arduino can't accept negative voltages it can't directly accept the negative half of the AC audio waveform. The simplest solution is to use two equal value resistors to bias the input at 2.5V and a capacitor to block the DC bias from your audio circuit as shown [u]here[/u]. You can subtract-out the bias digitally in your sketch.
I use a peak detector circuit. The peak detector puts-out a changing DC voltage proportional to the peak signal level. It puts-out a positive voltage (it ignores the negative half of the audio waveform) so you don't have to worry about biasing the input, but the big advantage is that I can read the "volume" about 10 times per second instead of "sampling" the audio waveform thousands of times per second.
Either of these approaches will accept a line-level (or headphone-level) audio signal.
The output circuit will depend on the LEDs/lights you use. You can drive "regular" LEDs directly, but higher power LEDs/lights will need some kind of driver circuit. My "Giant VU Meter" uses regular "high brightness" LEDs, but I used serially addressed LED driver chips so I could drive/address 48 LEDs (24 per left & right channel).
The LM3915 would also require a driver for anything other than standard LEDs. But, I think it works at a higher voltage than the Arduino, so you may be able to drive several LEDs in series from each output.
The software for a VU meter effect can basically be a series of if-statements... If the ADC reading is greater than 100, turn on the 1st LED, if the signal is greater than 200, turn on the 2nd LED, etc. Except, if you are reading the waveform (not using a peak detector) you'll need to find the peak every 1/10th of a second or so. That's because you are as likely to sample a zero-crossing as positive or negative peak or anything in-between and any single sample tells you nothing about the volume.