hmmm.
i'd try stashing my whole bitcoin client in some other directory, installing a new client, deleting the wallet and block index from the new client, putting the old wallet into it and starting it up.
deleting blkindex fixed the problem, but now it has to download all the blocks again
i had a similar problem happen to me before but with a different error
it seems to involve having the client open when you unplug/hard reboot your pc