I agree with Tara that it is condescending to say someone “suffers from” situation such as depression, cancer, etc. Using the phrase emphasizes victim hood. Instead, it would be more accurate and useful to focus on how the person has drawn on inner strengths, matured their perspectives and learned to carry on with being alive.
There is however one case in which it is appropriate to use “suffers from.” That case is when we mean it in the properly derogatory sense of the term.
We may say that someone suffers from halitosis, or bad manners, or poor spelling, or having a foul mouth, or being too dumb to know they are dumb. Unlike in the cancer and depression examples, this person hasn’t met an extra challenge that occasioned them to become above-average in knowing how to be alive. Quite the opposite. They have refused to step up to the basic challenge levels that everyone needs to have mastered in order to spend time pleasantly around other human beings.
While we say someone suffers from a condition, it is in fact all of us around them who suffer. “He suffers from halitosis” really means, “He is wholly unaware of and untroubled by his halitosis, but the rest of us must suffer because of it.” Likewise, in the case of “She suffers from sociopathy,” she is definitely the only one in the scene who is not suffering from the sociopathy. Au contraire, she probably gets big kicks out of it. At everyone else’s expense, of course. Many people would agree that “Beavis and Butthead suffer from having grotesque laughter.” Again, it is not the boys who suffer from the mouth-breather-y, ceaseless, inane laughter, but us.
“Suffers from” is not appropriate where the person met with a challenge that they could not help, and where they had to gain above-average internal strength in order to survive the challenge. It is appropriate though where the challenges are remediable and where the person fails to meet the bare-minimun self-skills necessary for social interaction and for managing their life.