Should I prevent individuals mating with themselves in EAs?
When talking about Evolutionary Algorithms, you will have to decide between diversity or specialization of the possible solutions.

You should not let individuals crossover themselves because you will be loosing diversity in your algorithm.

But, there is the exception to this rule: You need to make sure you are not punishing the success of this individual if he is the best, you could make sure this individual passes to the next generation by preserving the best parents.

The answer to your question is: Prevent auto-crossover but make sure you don't loose this solution when selecting the ones passing to the next generation (Elite group, passing n of the best parents)

In tournament selection, is not common to select the same individual as a participant of the tournament twice, so this possibility should not be one of your worries.

In roulette selection, be sure you don't eliminate successful individuals.