Modifying Erland's query a little bit, on SQL 2005 only (untested):
SELECT t.pno, t.bno, t.status, t.build_date
FROM (
SELECT a.pno, a.bno, a.status, a.build_date,
row_number() over(partition by pno, bno order by build_date desc) rn
from
progress a
) t
where rn = 1