This always seems to be the answer, but...
Talk to the player first.
I'm assuming you have some means of contacting your players outside your normal game time, if only to set up game or let each other know of cancellations or emergencies. Send your player a message, something along the lines of "Hey, I've noticed that you seem dissatisfied at game lately. Is there something going on you're not happy with? I want to make sure our game is fun for all of us, so please let me know if you have any concerns."
See how he responds to that. If he responds with a list of concerns, use those as a starting point. If they're things you can address, try to do so. If you think his problems are irreconcilable with your game and/or the other players, then say that, politely, and suggest that he might want to look for a different game to join.
If his response is neutral or brushes you off (such as "nothing's wrong, see you next game"), then you can let it go for a session or two. See how he behaves, and whether he raises the issue himself.
Ask another player to initiate communication
If you're not comfortable approaching the problem player directly (or don't have the means to do so), you can speak again with the person who told you this player wants to leave. It sounds like the go-between is friendly with him, so you can ask the go-between to, next time the player brings up the issue of wanting to leave the campaign, tell him to talk to you about it.
Don't use the go-between to actually convey messages like "I heard you want to leave, what did I do wrong?". That kind of thing usually gets lost in communication, and it puts the second player in an awkward spot. Just ask him to pass on that you're open to hearing your players' concerns and that the player is welcome to talk to you if he has a problem.
Don't jump the gun
Either way, don't rely on hearsay to drop a character and his player from the party. Don't allow the other players to sacrifice this guy's character unless you have his explicit buy-in (or if it comes up naturally in-game and the player himself is all for it). Don't assume that he meant what he said about wanting to drop, either - I've had players complain about my game in moments of frustration, but when I ask them if there's something I can do better, they reassure me they're having fun and were just briefly frustrated.
TL;DR: Communication is your friend!
Talk to the player. Follow his lead, and don't make assumptions based on what other people are telling you. If you handle this issue with grace and good will, then it's highly unlikely the other players will see a reason to stop playing a game they enjoy just because their friend did.
Roles Can Be A Bummer
Making actions/options not available to people can force people out of the magic circle pretty quickly. Sure, roles can help people feel special, but it can go overboard. This does not mean that the rogue shouldn't be stealthy, or that the cleric can't be tank-y, but not being able to use or do something because of an arbitrary class restriction breaks the circle, which means less fun for everyone.
Sometimes, multiple people actually can do the same thing, and that should happen sometimes. If every task you throw at the player characters cannot be accomplished except for 1 person's specialization, it may be a harder adventure than these players (as a group) are fit for. Not that there can't be a situation where you need a particular player to do a something, but that it shouldn't happen all the time.
Perhaps It is a Matter of Perception
So maybe this player is simply just does not imagine the same thing you do. You can try to reinforce what you envision by describing what is going on. Is she/he making informed choices? Does she/he realize what the gravity of the situation, or how her/his character has certain strengths?
Does this player realize the cleric is running around in thick armor, while that player's character is running around in normal clothes? For example, if I think the cleric is running around in normal clothes, and goes into combat and comes out unscathed, I could run in my normal clothes, and also come out unscathed.
If this is the problem, you simply need to be more descriptive! Describe how the cleric is wearing armor, or how the rogue is especially cat-like, and how this player's character is not.
For Games Which Depend On Roles
It may be time to have your other players step up. Have the cleric yell at the other character to stay back, or that the cleric "has this." Alternatively, the cleric may ask "PEASE SUMMON THIS TO HELP ME!" as he charges in.
If the rogue attempts to sneak around, the rogue can give specific instructions; "Can you make a distraction over there?" "Wait here, and if I'm not back in 15 minutes, go get the others to rescue me." Or even: "this looks super dangerous. I don't think you'll make it. We don't want to get ourselves killed, yeah?"
In short, give him tasks, or have the other players give him tasks to help with things. Talking is a free action in combat; use it. This is especially good for players who may be experiencing some mental handicap; it gives them something concrete to act on. It allows them to contribute (which feels great and is fun) without going through negative experiences.
Finally, a player or the DM can specifically highlight when certain actions will require a specific specialization, and who has that training. If it becomes obvious that a task is dangerous and requires training, then most people leave it to the person with the training. The DM can further forbid people without specialization from trying, stating that it's obviously too hard. This is more "hand-holdy" than some people like it, but sometimes people just need their hands held.
Talk About It
Talk with the player about the roles. What is her/his character good at? What should she/he focus on? These other characters have something special about them, what is she/he special at?
Talk about how their character is so good at magic/whatever else, and how they should try to make their magic/whatever else be the solution for the current situation. (After all, we're solving these situations using our strengths, use your strengths to help solve it!)
Tough Love
Finally, you may have to resort to letting the consequences of this player's action happen. Let the events, despite other character's best efforts, happen. Talk about how that character was not focusing on what they were good at, or how their play-style does not match up well with the class they chose. Make a new character that does okay at everything, such as most games' version of a "bard." Note: this does not mean make a character who is rule-breaking and superior to all the others, but one that stands a decent chance at performing many things, and isn't a large risk to the success of most tasks.
Best Answer
Well, it sounds like a pretty bad situation. But it can be helped. The following are not different techniques, they're a plan to fix this. You cannot skip one step and hope it will work out. It won't, not in the long run. So here we go...
Step 1: The talk.
Have a coffee with the player and talk it out. Tell him that you didn't catch how upset he became before and that you're sorry for that. Tell him you still want to play with him and don't want him to feel bad about it, but that riht now you're also feeling that you have to be constantly on watch for what you say. Ask him how he feels about this and how he wants you to treat him and his character.
Make sure he understands that a character is just a character and isn't about how you feel about him in real life, that mucking around with his character is actually a sign of bonding and friendship with him.
And listen to him. Listen to his concerns and what he wants you to do for him. You stepped in his toes; you're the ones who have to move your feet.
A good tool here is to write a list of things that are banned from play or against certain characters. It's important though that you don't just go over his character, but your own as well. You might not have hang-ups about teasing, but there are probably other things you don't want to deal with in the game.
Step 2: The gameplay
Don't mess with his character, in any way, unless he has already stated that it's alright for you to do so. If you come across a situation where the story is such that it would make perfect sense to mess with the character, talk to him first. Explain why you want to do it, why it makes sense in the story and that it's not about messing with him or his play.
And if he says no, respect it.
Step 3: Downtime
Hear him out after the first session or the end of the campaign. Ask him how it was, if it was okay and if it's alright to start a bit more conflict between the characters. This is where you can make your case about how inter-character conflicts can add both fun and roleplaying opportunities.
After this, it's just a matter of keeping up being aware of eachothers preferences and hang-ups. Go on from here.
I write this from a perspective of a person who has been bullied quite a lot as a child. I can take some flak now, but there was a time when I took everything personally. Roleplaying can be a great way to escape things like that, but it can also be carried into the game and suddenly it's not a safe place anymore. The things that you want to escape from follow you into the game, and why would you want to go on playing then?