Firstly, it may be a good idea to upgrade to a mre recent version of postgresql, because there have been many improvements from 7.1 to 7.2
!!! NOTE: Upgrading means you must rebuild all databases !!!
As near as I can tell, the error you get is related to the pg_am table, which holds information about the indexes used in the various tables. Perhaps you have a problem with the number of indexes, or the way you create/use indexes?
About the backups, you create them daily, or twice-daily if required. The point is that if your datyabase 'crashes' and you cannot repair it, you just drop it completely and refert to the backup. That way you lose some data, but at least you can continue. A locked table is just as useless as a lost table.