1001 * попробовать *
SELECT p.*
FROM (
select x.thread_id, max(x.created_at) as maxdt
from posts x
where x.circle_id IN (134) OR x.receiver_id=3
group by x.thread_id
) as dt
INNER JOIN posts p ON p.thread_id = dt.thread_id and p.created_at = dt.maxdt
ORDER BY p.created_at DESC
РЕДАКТИРОВАТЬ - согласно комментарию:
SELECT p.*
FROM (
select x.thread_id, max(x.created_at) as maxdt, max (OID) maxo
from posts x
where x.circle_id IN (134) OR x.receiver_id=3
group by x.thread_id
) as dt
INNER JOIN posts p ON p.thread_id = dt.thread_id and p.created_at = dt.maxdt AND p.OID = dt.maxo
ORDER BY p.created_at DESC