The 34-year-old, who has scored 30 goals in 72 appearances since his arrival from Burnley in 2011, also has the option of a further 12 months at the club.
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."
St Mirren manager Danny Lennon said: "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."