He said it is time people made judgments about what is "bad, good, right and wrong."
The Conservative leader acknowledged that he risked attracting attention to his own party's behaviour but he said society had become "too sensitive" about hurting people's feelings.
Mr Cameron admitted that the issue had been "troubling" him for some time, but claimed it is time to "say what needs to be said."
In a speech in the heart of a deprived area of Glasgow he said: "We as a society have been far too sensitive. In order to avoid injury to people's feelings, in order to avoid appearing judgemental, we have failed to say what needs to be said. We have seen a decades-long erosion of responsibility, of social virtue, of self-discipline, respect for others, deferring gratification instead of instant gratification.
"Instead we prefer moral neutrality, a refusal to make judgments about what is good and bad behaviour, right and wrong behaviour. Bad. Good. Right. Wrong. These are words that our political system and our public sector scarcely dare use any more."