Your drive may have directory corruption, or the iPhoto DB may be corrupted.
Fire up Disk Utility, and have it check the volume your iPhoto Library is on. If it finds anything, let it do repairs. And you might have to restore some lost photos from your Time Machine backup afterwards.
If Disk Utility finds nothing interesting, then launch iPhoto while holding down Command-Option. You'll get a repairs dialog, let it rebuild the iPhoto DB and thumbnails. This will take a long time if you have thousands of pictures. Let it scavenge for lost photos too - they'll end up in a new Recovered folder.