The 36-year-old has been sidelined for over a year with a hip injury and will turn his attention to charity and media work.
Roberts started his career at Wolves and also played for Bristol Rovers, West Brom, Wigan and Blackburn.
He scored 137 league goals in 449 games and his last appearance came in December 2012, in Reading's 1-0 Premier League defeat against Southampton.
A statement from Roberts read: "It is with great sadness that I have to announce my retirement from professional football on medical grounds.
"I have had an amazing 17 years playing professional football and I'm proud of everything I've achieved and am grateful for all that I've experienced.
"I've played in every division and I have fond memories of my time at each and every club I have represented, and also playing internationally for Grenada.
"I am now looking forward to the future and having time to focus on my charity The Jason Roberts Foundation.
"I am also excited about continuing my media work and having recently passed my corporate governance exams, I'm looking forward to exploring this area further.
"I have met many fantastic people during my time as a player and I am grateful to the game for the opportunities it has given me.
"I'd also like to thank the fans of all the clubs I have represented for their continued support during my career and especially through my recent rehab."