From the ground up is almost always the best situation. Minimal fixes can actually be the best when cost is a serious issue, but, overall, fixing something from the ground up is almost the best in the long term - especially if a person needs to think about the very long term.
I personally think that some moral values apply to everyone, or at least they should apply to everyone. Everyone should at least try and be a good enough person to not go out of their way to do bad things or hurt others. In that sense everyone should have that small amount of moral values.
While it may be easier to put in a temporary fix to a problem you are having it will likely continue to re-occur because you did not take steps to prevent the problem from happening in the future, when you fix the foundation of a problem you are solving that problem for good.
If, in the grand scheme of things, the only flaws that you will have to deal with are minor ones, it is a small matter to patch them up and move on. However, if the scope of the problem is great enough, simply throwing on a bandage every now and then will only be sufficient for so long. Eventually, a minor fix will not be enough to mend an inherently broken system.
I think that when trying to solve a tough problem, it is important that you try to fix the entire structure/foundation of said problem. Fixing just the minimal flaws here and there might be a good enough tactic, but it might also cause some problems with unresolved issues. That is why I think the former is better.