If it's one employee that's one thing, but when it's multiple, you know it's not their imaginatinon.
Be polite and direct. Either he stops leering or he is not welcome. You should never be concerned about offending the customer. He's chosen to be creepy.If he was a good and respectful person, he wouldn't do that.
Agree with John, address it directly. Your staff feeling respected/not being creeped on is their basic right, and also integral to their ability to maintain the attitude and atmosphere you want for all your other guests.
But what does it mean to address it directly? How do you approach this customer and what do you say? How do you tell someone to stop leering and what does it mean to "leer?"
I think John is right, but the devil is in the details in how you deal with this. This is a very tricky situation.
I have a close friend who tells me that in much of life "the music is in the tone." he probably doesn't realize he's being offensive and intrusive, so the key and trick is to talk to him in a way that is assertive but also respectful.
It is already an awkward situation. The comfort of the employees in their roles should be more important than retaining this one regular, because once anything is said to him, it can not be taken back and you risk losing him as a customer and if its handled poorly, anyone else he talks to.
The subtle first steps from the more passive direction is to start small and see if rotating the chairs he typically uses to face away from the work station is possible, or putting up some more marketing materials around his normal line of sight.
While working in a downtown Cincinnati shop as a male barista, when I noticed a customer making my coworker feel uncomfortable in the same way, I would take extra effort to talk with that person about their day or the city, it wasn't foolproof but it did draw their attention enough that they would talk back or start getting a little uncomfortable and leave. (Its harder for them to keep their leering up when having a guy standing in front of them talking about the weather)
My coworker told me she appreciated it and it made her feel safer.
If he insists on continuing making them uncomfortable, that is when its time to say something, but there is pretty much no good way to approach that kind of discussion. And Frog is probably right, the guy probably doesn't know he is doing something that is making them uncomfortable.
You could even ask your employees how they think the situation is best handled.
All in all something has to be done, if only for the sake of your employees.
We've had several "creepers" in our shop over the years. Generally, if any barista takes the time and effort to come to me and let me know that they feel uncomfortable, we will pretty much always ask that customer to find a new coffeehouse to hang out at.
It can be as simple as going up to the customer (or calling them) and saying,
"hey man, we really appreciate you coming in here and being a loyal customer, but unfortunately, I've had some complaints from some of the baristas about you saying some inappropriate things to them, and because we're trying to foster a healthy work environment, I think it'd be best if you found another place to get coffee".
These types of conversations are generally met with the customer defending themselves and saying they didn't do what you had heard, but generally they get the picture and don't come back. We've never had any bad backlash from these types of conversations and our employees really appreciate us taking their side and helping them out of an uncomfortable situation. But, thats just my two cents.
I would (as the owner/manager) have a conversation WITH the person. Get to know their story a little bit. Maybe it's just a big misunderstanding. The guy might have (really) bad social skills but is perfectly harmless. You'll get a read on him and if you're not comfortable with him then have the awkward conversation. But give him the benefit of the doubt first as a person, and customer and then make a decision.