I love to use the RANK() function.
I have been successful in improving performance using it, especially if you have to deal with very large tables.
SELECT t.Name, t.Balance
FROM
(
SELECT s.Name AS Name
, p.Balance As Balance
, RANK() OVER (PARTITION BY s.name ORDER BY p.id DESC) as rowNum
FROM section s
INNER JOIN paid_table p
ON p.sectionid = s.id
) t
Where t.rowNum=1