Não vejo muito do que reclamar :) Eu provavelmente armazenaria em cache a data da última modificação na tabela de conversas para que uma lista de conversas "não lidas" pudesse ser exibida rapidamente. Essa data seria atualizada sempre que uma mensagem fosse postada na conversa.