The BSE Sensex rose on Thursday to a record closing high of 21,164 points as state-run lenders such as State Bank of India rallied on hopes of stabilising asset quality and attractive valuations.
The broader NSE index rose 0.76%, or 47.45 points, to end at 6,299.15.
The BSE index gained 9.2% in October, its biggest monthly gain since January 2012 on strong foreign inflows as a delay in the US Federal Reserve's tapering of monetary stimulus led to a surge of money in risk assets.
Overseas investors were net buyers for a 19th consecutive session on Wednesday, bringing their total buying to nearly 160 billion rupees ($2.61 billion) during that period.
The BSE index rose to an intraday high of 21,205.44, just short of the all-time high of 21,206.77 seen in January 2008.
The index has now gained 21.3% since it hit an intraday yearly low of 17,448.71 on August 28.
"We are seeing strong support from institutional investors. Markets can go up to another 100 points (in Nifty). Going forward, there could be profit-taking after Diwali," said Suresh Parmar, head of institutional equities at KJMC Capital Markets.
"Stock and sector specific rally could continue, especially in IT stocks," he added.
The rally was led by state lenders including State Bank of India which closed 4.4% higher, while Bank of India rose 21.47%, Bank of Baroda was up 10.61% and Canara Bank gained 10.79%.
Among other stocks, Tata Steel gained 2.54%, Reliance Industries rose 1.84% and ICICI Bank 2%.
However, shares of pharmaceutical companies fell on profit taking. Dr Reddy's Laboratories was down 2.65%, Sun Pharmaceutical Industries lost 1.57% and Cipla Ltd fell 1.48%.