High gain circuits generally require multiple stages of precision amplifiers. However, lower precision components can often be used if provision is made for adjusting offsets and sometimes adjusting gain. Injecting a little current into an input node of an amplifier can be quite effective in correcting for a large offset voltage. The real problem with a large offset voltage is that it is nearly always accompanied with a large temperature coefficient of offset, meaning the offset voltage can change quite a bit as the circuit temperature changes. This change in offset can be quite annoying, but can be caompensated for by monitoring the circuit temperature and recalibrating (readjustaing the offset correction) whenever the temperature changes enough to require it. Another problem with high gain circuits is susceptibility to noise. For this it is necessary to use the correct components and to know how to properly lay out the circuit board for best performance. Signal integrity plays heavily in this.
This all means that the circuit may be more complex than desirable, but the payoff is in a circuit that is very robust in that it can be relied upon to do what you want it to do.
I am working, with others, on an idea that will make such circuit design virtually trivial.