Я бы на вашем месте хранил бы где-нибудь еще id последнего сообщения в каждом диалоге. Тогда можно было бы выбрать все записи из базы где текущий пользователь либо получатель либо отправитель, и потом как раз сгруппировать по id последнего сообщения. Тогда бы вы получили все последние сообщения этого пользователя.