We need an important information : table type ... (MyIsam or InnoDb)
Maybe your table is corrupted and you need to do a check over your table (and your database).It may be occur by a corrupted datafile (*.frm, *.myd or *.myi) due to a bug, a filesystem error or ???
Have you tried to backup this table alone ?If same problem occur again corruption must be investigated.
To search about this (and correct it), you have to run a "check table" command
mysql> use <database_name>mysql> check table <table_name>
See at http://dev.mysql.com/doc/refman/5.1/en/check-table.html for more informations about this command and options.
This command may output a lot of row. You must check about the last one (msg_type).You have to be worried if msg_type value isn't equal to
Table is already up to date
If table type is InnoDb next step is use innochecksum command from command line while server is stopped.
shell> innochecksum [options] file_name
See at http://dev.mysql.com/doc/refman/5.1/en/innochecksum.html for more informations about this command and options.
Hope that this will help you