Perhaps, but these aren't easy issues to fix.
Most SQL systems have an "EXPLAIN" directive; I would assume PostGres does also, but I've not used PG hardly at all (I think I installed it once). You can use EXPLAIN to make sure that queries are actually using your indexes.
If PGSQL has something similar to MySQL's slow_query_log, I would definitely enable that; it can pinpoint any bad queries that might be improved and in turn improve your application.
Server-side observation, via top(1), fstat, etc. is often helpful. Perhaps something is eating RAM, or the disk is thrashing ... and so on.
In the PHP, Xdebug can be used to look at the PHP work, but it sounds as if, from our post, the issues are in the DBMS. DO NOT used Xdebug on a a production system; replicate your system inside a VM for debugging, or set up a development environment somewhere.
One thing I'm curious about is your DB schema. Could you post that? It could be that someone who knows a tad more about DB normalization could find you a silver bullet in your schema.