Low pass signal filtering using FFT or simple infinite impulse response filter
There are three potential problems with what you are doing:


Zeroing out the high frequencies causes ringing due to the Gibbs phenomenon.
You are essentially multiplying the Fourier transform with a square function, which is equivalent to circularly convolving the time-domain data with the inverse transform of the square function, which is a sinc function.  Unless you zero-pad the data before transforming it, the circular convolution will cause the data at the end of the FFT block to affect the data at the beginning, and vice versa.
If you were doing multiple FFT's to process a stream of data, unless you use a technique like Overlap-Add or Overlap-Save, there will be discontinuities at the boundaries between FFT blocks.  This problem is related to #2.