you have several software based solutions for that purpose, however I would strongly advice not to use such.
a computer program, no matter which one, will create an artificial effect which will be visible as such.
there is a much better way to get the effect you would like...
for such you have to work in layers, most graphical programs support such feature.
the bottom layer will contain your photograph,
on top you put a layer where you show a self made authentic picture which has to give that effect,
but you have to make that top layer for 80 to 95% transparant (depending on the bottom photoghraph).
the picture that you use for that effect in the top layer can be of a wide variety of subjects...
for instance: an old wall, an old piece of paper or cardboard, or many other things.
I promise you if you practise this, you will get much better results than any software can do, your picture will look authentic and the whole image will be artisticly made, so not only better but also more personal.
try it, you'll love it.
(I am just new here, no photos uploaded yet, but they come soon).