I restarted the iPhone to no avail. I connected it to my Mac, and iPhoto imported the screenshots without a problem. After a sync they were in my iPhone's photo album, but I still couldn't see subsequent photos taken with the built-in camera.
After some searching I found this thread on Apple's Discussion Board that describes my issue. It seems that the iPhone fails to display photos taken beyond number 10,000.* That's right, I've taken 10,000 photos with my iPhone. Or have I?
The iPhone in question is a 3GS that I purchased not too long ago. There's no way I've shot that many pictures in such a brief time. However, I did buy an original 4GB phone back on opening day. As I set up the 3GS, I did a restore from backup. Guess what came with it? The "counter" for all photos I snapped back then. The 3GS picked up where the original model left off. D'oh.
I'm glad to say that I've restored the Camera Roll's functionality. Here's how. I connected my iPhone to my Mac and launched PhoneView. From there, I clicked Settings and selected Show Entire Disk. Be careful here, because this lets you fiddle with typically hidden folders and files.
Inside the DCIM folder I found a number of folders with names like "100APPLE," which I deleted (AFTER syncing my iPhone with iPhoto and grabbing all stored pictures). Then I quit PhoneView, restarted the iPhone or good measure and presto! I was back in business.
I'm not the only one with this problem and I hope Apple addresses it in a future update. Note that you can get this done with the free trial of PhoneView, but it's a great app and only $20, so buy it as a thank you.
*Remember, this refers to number of photos shot with the iPhone, not number of photos stored.