I suppose that, since a Turing-complete language can simulate a Turing-machine, a non-Turing-complete language can't, but most programs do not have the simulation of a Turing machine as their purpose.
I also know that some non-Turing-complete languages can't use unbounded loops, and I suppose that making unbounded loops forbidden is enough to make a language non-Turing-complete. But it doesn't mean that it's the only way.
So, in general, what common properties or abilities of general purpose languages are only possible with a Turing-complete language?
If I decide to design a non-Turing-complete language, what common purpose functions won't I be able to implement with it? Which common source code structures should I forbid?