From the looks of several photos here, it appears as if the iPhone camera is extremely sensitive to how clean the lens is (and I don't mean rub on your shirt clean, I mean photographic lens cleaner clean), glare on the lens (one should shade it from any direct light with something), and absolute light level (noisy sensor).