Try this,
;With CTE as
(
select G.region as Region
,A.Name as AgencyName
,A.AgencyId
, sum(L.LoanAmount) as LoanAmount
,Row_Number() over (Partition By G.region order by sum(L.LoanAmount) desc) as RNo
from dw.FFLoan L
inner join dw.dimborrower B on L.BorrowerId = B.BorrowerId
inner join dw.DIMGeography G on G.GeographyId = B.GeographyId
inner join dw.DIMAgency A on A.AgencyId = L.Agency
group by G.region, A.Name, A.AgencyId
)
Select * from CTE
where RNo <=5
order by LoanAmount desc