Ben writes "Dbcc checkdb showed a database to have consistency errors, however running repair_allow_data_loss resulted in the following error
Server: Msg 8966, Level 16, State 1, Line 2 Could not read and latch page (1:1370) with latch type SH. sysindexes failed. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Please could you tell me how to fix it, and how it occurred in the first place?
Repair won't fix it - you need to restore from your backups. Its a damaged page in one of the critical system tables (sysindexes). These errors are almost 100% caused by h/w going bad. Run full disk diagnostics, look for errors in the SQL Server errorlog and Windows event logs.
If you don't have any backups, script out a new database and extract as much as you can from the damage one (and get a backup strategy)