The 34-year-old, who arrived from Burnley in 2011, has scored 30 goals in 72 appearances for the Scottish Premier League team.
He told the club's official website: "I am very happy here at St Mirren, it was the easiest football decision I have ever had to make and I look forward to being involved in the continued progress of the club."
Meanwhile, St Mirren boss Danny Lennon added: "These two seasons have been the best form of his career. He has been our top scorer for two years, led the line incredibly well and is a character that motivates the players around him.
"He has played a huge role in our success and raising the profile of our club. I am delighted Steven has decided to finish his playing career at the club that inspired him to play this beautiful game."
Thompson's contract will run until 2014, with the option of a further year.