Sensex ends 21 points higher; Nifty holds above 8,700