Silver tops $69 as dollar weakness fuels 18% monthly rally