US close: Stocks make decent gains