I worked out what was going wrong. What we do is take a 600dpi original and generate a bunch of images at different resolutions and formats. Looking at the headers:
Software: Adobe Photoshop CS2 Windows
That's odd. Someone has fiddled with the image.
Image Width: 2943 Image Length: 4126
Hm. Not so bad.
Resolution: 0.393, 0.393 pixels/cm
Yikes! If my calculations are correct that's 1 dpi.
So when I resize it to 300 dpi I end up trying to create a 882900x1237800 image. 10^12 pixels. No wonder it can't cope.
Moral of the story: never trust your input data.