IIR or FIR
Virttually all DSP applications, have some form of FIR or IIR filters.
Actually, the design of the filter comes after you analyze the signal before hand. Thats why your process is
1.) Gather the signal characteristics. You need to perform FFT here to know the frequenccy components in your signal.
2.) Design a filter. Since you know what are the frequency contents in your signal you can suppress or remove those unwanted components in your signal. This comes the design of FIR or IIR filters.
3.) Convolve or apply your signal to your filter, you get hopefully your desired signal components.
Normally in DSP products, few implement FFT and IFFT algorithms on chip, because these algorithms are rather computationaly extensive and eat lots of system resources. So they analyze the signal first, and design appropriate filters.
Which is better IIR or FIR
IIR filters:
1.) From the name alone, Infinite Impulse Response, means a lot of computation is required which translates into huge resources intake. RAM, program space and computing time.
2.) Becauae IIR filters have poles in their trasfer functions, there is a tendency that the filter becomes unstable; literraly you can get a huge magnitude response or during computaion you get overflow in the resulting computations. Poles can lead to divide by zero which can make the filter unstable.
3.) Some IIR filters hovever can be converted to FIR to improve stability. The Digital FIR Chebyshev filters for example.
FIR filters:
1.) Filter coefficients are finite; however, number of filter coefficient should be sufficiently large so that the computations will converge close to the actual response.
2.) Always stable. FIR filters have no poles in the transfer function.
Hope this clears a bit.