Noise removal from audio using FFT/Spectral editing
There exist solutions that are coarsely based on the idea that you propose: Threshold the spectrogram amplitudes to reduce/remove the noise part of the signal. Usually, this will bring about artifacts as e.g. the so-called musical noise and the application determines whether this is acceptable or not. In general, the more the noise is reduced the more negative effects the process has on the quality of the desired signal (i.e. the speech in this case).

As a first attempt I would suggest you to try the Noise Removal algorithm in Audacity (http://web.audacityteam.org/). Probably this will give satisfactory results and is sure worth a try as the software is free. If you're okay with spending money to most probably achieve better results, have a look at RX by iZotope (https://www.izotope.com/en/products/audio-repair/rx/). However, if you know the basics of digital signal processing and want to experiment yourself, a first thresholding algorithm will not be very complex in programming environments like e.g. MATLAB.

If you're interested in the background / signal processing methods that these algorithms are based on I would recommend the books by Vaseghi (http://www.amazon.com/Advanced-Digital-Signal-Processing-Reduction/dp/0470754060/ref=sr_1_1?ie=UTF8&amp;qid=1432211838&amp;sr=8-1&amp;keywords=vaseghi) or Godsill and Rayner (https://www-sigproc.eng.cam.ac.uk/Main/SJGSpringer), the second of which can be downloaded for free from the internet.