I like OrbMan's solution (I think it is the most intuitive), but here is another way -- select all from one table and then the ones that you have not selected from the 2nd.
select invoice_id, balance from pending_payments where invoice_id = yadayadayada
UNION
select invoice_id, balance from invoices where invoice_id = yadayadayada
AND invoice_id not in (select invoice_id from pending_payments)
and as a side note, some have stated that on some systems this is actually faster. I make no such claims, but if speed is an issue it is worth trying.
Also, if you need to include a source column (eg pending or invoice) it is easy to do it this way like this:
select 'pending' as source, invoice_id, balance from pending_payments where invoice_id = yadayadayada
UNION
select 'invoice' as source, invoice_id, balance from invoices where invoice_id = yadayadayada
AND invoice_id not in (select invoice_id from pending_payments)