You can use the Row_Number function when using MS SQl Server 2005 and up
select detail.ID, detail.PID, detail.Value
FROM
(
SELECT Row_Number() over (partition by PID, Value order by PID, Value desc) as rowno,
ID, PID, Value FROM MyTable
) as detail
where detail.rowno = 1