Another way of handling this is to use a simple microcontroller, and feed the input signal into its ADC (analog to digital converter). You will need to use a voltage divider to divide the maximum input of of 8v to fit the maximum voltage of the ADC.
With this arrangement you can easily determine the peaks in firmware. With the other schemes using the capacitor, there is no method shown to discharge the capacitor in order to measure the next peak (your example of 7v -> 5v -> 4v). With firmware, this is trivial.
Another advantage of using a microcontroller is the low parts count -- just the microcontroller, a decoupling capacitor, and a pull-up resistor on the reset line.
One microcontroller to consider is the PIC16F1786 which has a 11 channel, 12 bit ADC. It is available in a 28-pin DIP package from Digi-Key for $2.54. It has an internal oscillator so no external crystal is needed.
Here is a suggested circuit:
You could use three of the microcontroller's outputs (or any number, e.g. 8 if you want) to directly drive a bank of LED's without any additional circuitry (except for the LED resistors), since the I/O pins can source or sink 25 mA.
It has an internal 4.096v reference, so dividing the 8v input signal in half is ideal. The combination of a 4.096v reference and 12-bit ADC means each count corresponds to exactly 1 mV.
The program (in C) would be quite simple, probably not even a full page of code.