The "easiest" way is simply to apply the signal and sample with the ADC. Store the results in a buffer then display as desired (in your case send to PC via RS232)
If you want the RMS level of the signal then you will need to calculate this at some point, either before sending to PC or afterwards.
Your amplifying circuit as shown is not ideal, but should work reasonably for a basic VU meter. EDIT - I just noticed C2, remove this as it will block the DC bias from the transistor, and the signal will swing below ground.
EDIT - here's a better circuit for the amplifying transistor:
This shouldn't care too much about the transistor used, the output bias should be around 2.5V.
The exact values for the input divider (R3 and R4) are not too important, it's the ratio of 1:4 that's more so. So you can use e.g. 400k and 100k, or 40k and 10k, etc (try not to go above or below these respective values). C2 should be >10uF. C1 should be >1uF (replaces C1 in your schematic)
R1 and R2 do need to be these values though.
All you need is the electret with it's bias resistor (R1 in your schematic)
One point of concern is the Arduino 3.3V and 5V lines seem to be tied together - I'm assuming this is a schematic error, but if this is the case in the actual circuit it will not work, and may damage something.
To pinpoint the problem(s) it would help to see your code, and what you are seeing on the PC side. Also what transistor are you using?
If you have an oscilloscope, then you can check to see if your mic/transistor are working correctly. If not, then a multimeter can be used to perform some more basic tests (e.g. confirm +5V present, confirm base of transistor is at ~0.6V, test collector to make sure it's not pinned to +5V or ground with no signal present)
Also you need to make sure the RS232 is working correctly, so writing some simple code to send some test values would be a good idea.
If you can provide the requested info, and let us know what tools you have available more specific help can be given.
EDIT - if you are sampling so slowly, then you will need a peak detect circuit like this:
You would put this circuit in between the transistor and the Arduino pin (minus C2)
The diode can be just about any diode. The cap and resistor values are just a guideline, they can be changed a bit. Their values dictate how long the voltage will take to change with the signal level. You can calculate this using the RC constant (i.e. R * C - in the above example, the RC constant is 1e-6 * 10e3 = 10ms. The voltage will take around 2.3 time constant to fall by 90% of it's original value, so in the above example if the voltage starts at 1V and you remove the signal, it will have dropped to 0.1V around 23ms later.
EDIT - okay, think I found a major problem. Your S9012 transistor is a PNP transistor (as is the S9015), you need an NPN transistor for this circuit. The S9014 is an NPN transistor, so you will have to use this one.
The capacitors marked "104" are almost certainly 0.1uF ceramic capacitors. The value (in pF) is the first 2 numbers followed by a number of zeros set by the last number. So for 104, the value is 10 + 4 zeros, or 100,000pF. 100,000pF is 100nF or 0.1uF.
EDIT - Not having a scope or multimeter makes life very difficult here (you should get hold of one or both as soon as you can)
However, there are some basic PC soundcard oscilloscopes that could be used to test your electret/transistor circuit. Visual Analyser is quite a good example:
If you replace C2 (not strictly necessary but a good idea), you should be able to feed the signal into the PC directly and observe in the software to see if the microphone and amplification are working correctly.
If your PC has line in use that, but the microphone input is usually good for up to 2V IIRC. You could also test the electret directly - just remove the transistor bit and keep R1 and C1, take signal from the other side of C1.
Note that this method will not test the DC levels, only the AC (due to a DC blocking cap in the souncard input) but the AC (audio) signal is what you are interested in here.
If you try this, post the screenshots so we can get an idea of what's happening.
Nyquist showed you have to sample at a rate at least twice the highest frequency you care about. This captures the information in your signal, but also causes artifacts from the frequencies above half the sample rate to show up in your sampled signal. These are called aliases. You therefore need to first eliminate the frequencies that will cause aliases, then sample.
Since no filter has a infinitely sharp cutoff, there will be some frequency range above the highest frequency you care about and below the frequency the anti-aliasing filter attenuates enough for you to get the signal to noise ratio you care about.
Analog filters are usually fairly gentle in their falloff. One approach is to apply a slow-falloff analog filter, sample at a high rate, then digitally filter that with a sharp filter to allow re-sampling at a lower rate. That last step is often called decimation.
For example, let's say you are after good quality voice and you're highest frequency of interest is 8 kHz. You might put a two-pole R-C filter on the signal with each pole at 12 kHz. You might sample the result at 100 kHz, which means anything past 50 kHz had better be attenuated below your noise floor. The analog filter will reduce 50 kHz by 25 dB, which you decide is good enough in this case since you know there will be very little content above 50 kHz to start with.
Theoretically you can take this 100 kHz sample stream and decimate it to 16 kHz, since that's twice the highest frequency you care about. Even a sharp filter, like convolving with a 1000 point sinc, needs some room to work with. Let's say 1/2 octave (that's really sharp), so the absolute minimum sample frequency after decimation would be 23 kHz (8 kHz plus 1/2 octave is 11.3 kHz, times 2 is 22.6 kHz).
You gave no spec on what kind of sound you want to sample, so you'll have to extrapolate to your requirements on your own.
Best Answer
If the Arduino is anything like a PIC µC then you have no hope of sampling at 44KHz. Most simple µC have quite a slow sampling rate (like 100's of samples per second).
If you want faster then you'd be looking at using something like a dsPIC which has an actual audio grade ADC in it, or use an audio ADC externally that can send I²S data to a µC that is fast enough to respond to it.
I have done some similar work recently while designing a digitally controlled amp.
I had the output of the first stage of the amp going into an analog input on the controlling PIC to then control a bargraph of LEDs for a simple VU meter.
For an output from a PC soundcard you're probably looking at around 1 to 2 volts voltage swing. For my system I wasn't too fussed about frequency and such - just pure peak amplitude - so I passed the signal through a small shottky diode first to trim off the negative voltages. This simplified my design a whole lot.
I am also designing a small frequency analyzer at the moment, and am looking at having selectable op-amp based band-pass filters based around this design: http://www.wa4dsy.net/robot/bandpass-filter-calc which so far has given quite good results. I am varying some of the resistor values by a combination of digital pots and analog multiplexers.
I would certainly recommend at least protecting your analog input(s) with op-amps to limit the maximum voltage they get - just in case. You don't want a voltage spike blowing up your Arduino now do you? Easier to replace a blown op-amp.
And as for a signal for testing? There are many free signal generators for the PC available for download if you do a little google for them. They will let you select waveform, frequency, amplitude, phase, etc. Even allow summing of waveforms to give new waveforms if you're lucky.
You can even use your PC soundcard as a rudimentary scope as well with the right software and a small home-made probe. There is software and designs around for this too on the net.
Oh, and remember to isolate different stages / voltage levels with capacitors in the audio signal. As a rule of thumb, if I am changing PSU voltage levels, I always introduce a capacitor to isolate the stages. So, I had one on the input signal, one on the stage 1 -> stage 2 (+/-5V to +/-12V power supply), one on the stage 1 -> analog input, and one again on the output. It pays to take no chances with stray DC offsets wandering into the wrong part of the circuit.