When you say welfare I will assume you don't actually mean just welfare which is an independent program, but instead all government assistance programs like WIC, Food Stamps, housing assistance, etc.
Drug test anyone getting welfare since drug tests can be bought for pennies at whole sale. Remove anyone who fails, though don't punish the children, just offer an alternative program for the children. While I am not against people doing drugs, after all it is their own body, I am against the same person who wastes money on those drugs then asking for help with other financial needs.
Reward working instead of punishing it. Most people on welfare lose it when they start working. Just because there is an income doesn't mean a person doesn't need help. I'd much rather help a person who is struggling after gaining employment than helping someone who has been jobless for a year or more.
Make higher education more available in low income areas since lower income are less likely to get a college education. Maybe even offer incentives for attending college. Again I'd rather the money go towards people attempting to help themselves, because if they are getting an education they will be more likely to come off welfare programs in the future. Also in many states people who choose to go to college are penalized and lose welfare because they are going to school. That seems very backwards to me, as if the government is only capable of looking at right now instead of looking at long term. Think of it as birth control reduces unwanted pregnancies so less low income people getting their pregnancy covered by medicaid. Same for college. It boosts income reducing the need for many (not all) of those people needing assistance later.
Really I think my list could go on and on. I'd do a hub about it but it likely would never get viewed because no one cares what some average person thinks on the topic. There are ways to fix the problem though.
EDIT- Sorry didn't realize how long it was, maybe I should have written a hub! :)