Essayez
SELECT messages.*, T2.photo
FROM messages
LEFT JOIN (SELECT userid, MAX(id) AS maxid
FROM tblimages
GROUP BY userid) AS T1
ON messages.user_id = T1.userid
LEFT JOIN tblimages AS T2
ON T2.id = T1.maxid
ORDER BY messages.msg_id DESC
qui trouve max(id) pour chaque utilisateur dans tblimages, puis l'utilise pour joindre chaque utilisateur à la dernière photo de cet utilisateur.