It's still not clear what you mean by 'simple "gradient"' - that could refer to a variety of things.
One possibility is that you mean just the differences between adjacent values - what you'd get by computing
for example. You can do a similar operation in the frequency domain using the fact that the differentiation operator transforms to multiplication with ik (where k is the transform variable). The code looks like this for differentiating with respect to x:
im = imread('pout.tif');
nx = size(im, 2);
hx = ceil(nx/2)-1;
ftdiff = (2i*pi/nx)*(0:hx);
ftdiff(nx:-1:nx-hx+1) = -ftdiff(2:hx+1);
g = ifft2( bsxfun(@times, fft2(im), ftdiff) );
As you can see, it's simpler to do it in the space domain. Why use the FFT?