If I want to apply a filter to an Image should I use the IIR or FIR filters?
Some important vocabulary first to get the terminology right:


DFT - Discrete Fourier Transform. This is a transform. It is quite computationally intensive. ($O(N^2)$).
FFT - This is an algorithm that makes computing the DFT very fast. ($O(N \log N)$) 
Z-transform: This is just a mathematical generalization of the DTFT - it is not an algorithm. When $z = e^{jw}$, then we have the DTFT. Moreover, the DFT is a (uniform) sampling of the DTFT.


So from a practitioner's standpoint, what you will use in your filtering technique is the FFT - at least with a lot of classical techniques. This is because as stated above, the FFT is an algorithm.

In relation to implementing actual difference equation VS doing your filtering via FFT: Most of the time, implementing a convolution is done via the FFT, because of the computational simplicity. There is a point however at which it becomes most efficient to perform a convolution directly, but that is only if your image/signal sizes/lengths are really small.