last_value com IGNORE NULLS funciona bem no Oracle 10g:
select item, year, month, amount,
last_value(amount ignore nulls)
over(partition by item
order by year, month
rows between unbounded preceding and 1 preceding) from tab;
rows between unbounded preceding and 1 preceding
define a janela para a função analítica. Neste caso, o Oracle está procurando por LAST_VALUE dentro do grupo definido em PARTITION BY (o mesmo item) desde o início (UNBOUNDED PRECEDING) até a linha atual - 1 (1 PRECEDING)
É um substituto comum para LEAD/LAG com IGNORE NULLS no Oracle 10g
No entanto, se você estiver usando o Oracle 11g, poderá usar o LAG da resposta de Gordon Linoff (há um pequeno erro de digitação com "ignore nulls")