Sure! It depends on what you're trying to do... In any case, you will need to add some hardware at the analog input.
As a simple project to start experimenting with, you can take several level/loudness readings over several seconds and keep a running-average. Then,whenever the level is above average, turn an LED on and whenever it's below average, turn it off. Since the LED is on half the time, that gives you lots of "action", no matter what the volume/signal level.
I've made a system that has 7 lights (actually 7 "channels" with 8 sets of 7 lights each). It does all kinds of sequences and patterns based on the volume/beat, and there's a "VU meter" effect. One of the effects is something like I described above. It sets-up a random pattern and when the signal is louder than average the LEDs toggle (the on-LEDs turn off,and the off-LEDs turn on).
Right now, I'm working on a similar 8-foot tall "VU meter plus" effect with 24 LEDs in the left & right channels.
The hardware issus is that audio signals are AC (the voltage goes positive and negative). But, the Arduino's analog inputs can't go negative, and they can't go above 5V (or the Arduino can be damaged).
The easiest solution is to bias the input (basically add 2.5V to the input by using some resistors). But, I use a peak detector
circuit which throws-away the negative half, and holds the positive voltage for a little while (depending on the RC time constant). Then, I add a resistor and a couple of "protection diodes."
Oh... If you bias the input and average and the level, your average will always be equal the the bias (the average of a normal non-biased AC signal is zero, which isn't really useful either). So, if you want to use a moving average as a reference, you'll have to do something in software, like subtract the bias and use the absolute value of yur readings.