this question is here many times.
you have basically 2 choices - stock or cyanogenmiod.
i think the most stable is stock 20q ROM with some better kernel. it only has some problems - few RAM, it becomes laggy after about 120hours of use, but it still works and you can reboot it manually. i dont like when i oversleep in the morning because CM7 ROM randomly, once in month, drains all battery over night and alarm doesnt work in the morning.
if you dont need 100% reliability from stock rom. i recommend 99% reliability of cm7(temasek build) with ram hack kernel.