FFT/DFT is not precise if you do not have the exact harmonic in you signal. If you are also (or only) interested in phases you might use a maximum likelihood estimator (which brings other problems though).
And as the previous answer said: compressed sensing (or compressive sensing) can help as well for some non-standard cases.
And as the previous answer said: compressed sensing (or compressive sensing) can help as well for some non-standard cases.