Hmm, if you hadn't mentioned the flash makes a difference I'd bet on a corrupted SD card. If you're sure it only happens with flash off (and that wasn't just a coincidence), I'd try clearing the camera app's cache and data, force close the camera app, and try again. If that doesn't do it, I'd still try using a different card, or backing up the files on it and reformatting it.