The 33-year-old, who spent a seven-game spell on loan at Portsmouth earlier in the campaign, becomes the Robins' second signing of the week after Rotherham's Jason Taylor made the move south on Monday.
"Patience has paid off and we have been greatly rewarded," manager Mark Yates told the club's official website.
"We would have liked to have done things sooner but it was important for Paul to think about things and decide on whether it was the best move for him.
"This is just the kind of signing we needed following the departure of Chris Zebroski. We have been lacking presence up front and that's nothing against the boys already here but it has been evident."
Benson made a name for himself with 84 goals in 201 games after during five years at Dagenham and he made the short move to Charlton in 2010.
Ten goals followed in 28 starts for the Addicks before a move to Swindon followed 12 months ago.
He had an immediate impact for Paolo Di Canio's men, scoring a number of vital goals as the Robins clinched promotion to npower League One.
- Sports & Recreation