As an ADC designer, I recommend a slight modification to the Hanning window. It even works well for sigma-delta ADC sequences.
The standard Hanning window is:
w[n] = 0.5*(1-cos(2*pi*n/(N-1)));
where 0 <= n <= N-1
The problem is that this window is not periodic with a period of N so you get smearing among the frequency bins. I recommend this window:
w[n] = 0.5*(1-cos(2*pi*(n+0.5)/N));
where 0 <= n <= N-1
This window works much better when you have to resolve a deep null in the noise spectrum of a signal (as with a sigma-delta ADC output).
I don't think it's possible to identify a single "best" FFT window for all applications; rather, it's important to know about various windows and what their weaknesses and strengths are to identify the best window for a given application.
Generally I don't worry about the signal scaling after the window, since I'm only interested in relative magnitudes. It's a good idea to include a signal of a known size in your time-domain vector so that you can use its FFT magnitude to "calibrate" the rest of the FFT.
-Brian