I've worked at homeless shelters (in Boulder) and also run a food pantry which serves a lot of the same population (in Utah).
Here's the thing, everyone is right (and wrong).
Many/most chronic homeless are indeed addicts and/or mentally ill. You can have a long debate about the direction of causation, but that's the reality. There are a few single moms down on their luck and such, but for the folks who have some ability to function, it's not super hard to leverage the resources to get life back on track. These people are typically only homeless for a little while.
Punitive policies typically aren't very effective.
Providing more resources typically isn't very effective either.
People (even very liberal people) are really not big fans of homeless encampments if they actually experience them on a daily basis/live near them. They are dangerous, dirty, and disruptive to the lives of anyone living in proximity. And cheaper housing is not going to help any of them, really. Cheaper housing will help the folks living 10 to an apartment with the adults working 2 low end jobs, which is a good thing. But those folks don't end up homeless.
So there's no quick and painless solution, no matter how much someone on the right or the left claims there is.
My personal opinion is that harm mitigation (keep encampments in areas where they're not too disruptive to the general public, help out those who are able/willing to seek help, etc) is the only really useful strategy in the short term. For violent/dangerous folks, prison is probably the only real option.
In the long term, we should just stop being cheap and fund social services (early childhood education/preschool, national healthcare system of some kind, etc) that will allow more people to realize their potential and not end up homeless in the first place. But that will take 20 years to have a meaningful effect, so we probably won't do it, because, like I said, we're cheapskates as a society.
-W