One way to go:
DECLARE @T TABLE (ID INT PRIMARY KEY, SentDate VARCHAR(10), ReceivedDate VARCHAR(10), CreatedDate VARCHAR(10))
INSERT INTO
@T
VALUES
(1, NULL, '2-11-2012', NULL),
(2, '22-10-2012', NULL, '2-12-2012'),
(3, '8-8-2012', NULL, NULL),
(4, NULL, NULL, '25-12-2012'),
(5, '7-11-2012', '1-8-2012','5-1-2012')
SET DATEFORMAT dmy
SELECT
ID, MAX(CAST(AnyDate AS DATE)) -- Select the maximum date out of the three splitted rows
FROM
@T
CROSS APPLY
(
-- Split row into three rows, each row containing a different date
VALUES (SentDate), (ReceivedDate), (CreatedDate)
) CA(AnyDate)
GROUP BY
ID
And I am totally agreeing with GSquared. I took the risk.
Edit: Added cast to date