From the im2double doc:
"I2 = im2double(I) converts the intensity image I to double precision,
rescaling the data if necessary."
"RGB2 = im2double(RGB) converts the truecolor image RGB to double
precision, rescaling the data if necessary."
"X2 = im2double(X,'indexed') converts the indexed image X to double
precision, offsetting the data if necessary."
Using im2double will rescale the data (if necessary) from your image.
Using double won't. I think that's the only difference.
-Nathan