Carry a flathead screwdriver in your purse. They're legal for anyone to carry and it hurts like fuck when you're jabbed with one. Plus not very many people are gonna fuck with someone who's attacking them with a screwdriver. Like other people said, don't try to be fair. If you have to castrate a motherfucker to get your point across, do it.
Seriously, though, if you're not comfortable with a situation and there are people around, make the biggest scene you can. Scream, yell, hit, cuss, just go fucking nuts. If someone's just being a little creepy and not taking the hint, don't worry about hurting their feelings. In fact, wound them so badly emotionally that they're crying on the floor in a fetal position by the time you're halfway through.