I typically re-index our database every two weeks or a few times a month. This isn't really done on a scheduled basis but rather an intuition I get when I feel like the database is running a little slow. We typically restart our server that hosts the database once or twice a month and that also seems to provide some performance increases.
My question is how often should the database be re-indexed. I'm currently using Act Prem 2005/v7 hosted on a Windows Server 2003 machine (Xeon 3.0GHz 1GB RAM). The size of the db is approx. 1.5GB, 52000 contacts, over 8000 attachments, more than 40 custom fields, and 10 users.