I am not a total novice of quantum computation (have read the first 6 chapters of Nielsen and Chuang, though not familiar with every part), but there are some fundamental questions that I don't know answers well. One question that has bothered me is that I often hear comments which say that quantum computers can not be regarded as a replacement for classical ones.
However, we also know that all classical circuits can be simulated by quantum circuits. Put it another way, every Boolean function $f:\{0,1\}^k\to\{0,1\}$ can be computed by using a quantum circuit.
So, how to correctly understand the problems that a quantum computer might encounter when doing a classical computer's job? I know a strong restriction on quantum computing is that we can't read the resulting qubits state directly, but has to use quantum measurement so that we can only get one of the computational basis states probabilistically. However, I don't see this is a difficulty if what we want to do is only to compute a Boolean function.
Following are some possible answers I've thought of:
Quantum computers can do everything classical computers do, but no more efficiently if we only use the standard technique to simulate classical circuits. Quantum computers outperform classical ones only when special quantum algorithms exploiting superpositions of quantum states are applied, such as the quantum Fourier transform (QFT).
In Nielsen and Chuang (Section 5.1), it says QFT cannot replace classical discrete Fourier transform. Besides the problem that the amplitudes cannot be directly accessed by measurement, it points out that the worse problem is that "there is in general no way to efficiently prepare the original state to be Fourier transformed." Maybe such kind of problems is important for many applications.
Are the above answers right? Are there other important reasons quantum computers cannot replace the classical ones?