I wrote an application in php and postgresql and the data in the database is rather large (9GB and rising) I need an expert who can help me optimize the postgresql server and have a look at the indexes, to nail down the problem
Indexes will slow down Inserts, updates, deletes... You have to decide what is more important, fast selects or fast CRUD minus Read... Regarding Indexes, put them on FK's and PK's... Don't put them on Mapping Table ID's, Put them on anything you are using as a condition (like if you have queries where username='aaa' and password='bbb' you could put an index on username and password.
Have you considered allocating tablespace for indexes on a seperate drive. Fortunatily none of my PostgreSQL apps are anywhere near that size. In any case once you have it fixed I would like to hear how you did it.