The difference between 出る and 出てくる is that the later is specifically oriented towards the speaker (and if included, which is not always the case, also the hearer).
Compare the next two examples:
a. 家から出てきた。
[Someone] came out of the house.
b. 家を出ていった。
[Someone] left the house. OR [Someone] left for good.
In (a), we are located outside of the house, and the person inside the house comes out. As a result he is outside with us. Since where we are is "here", the person in the house moves to "here", i.e. comes. That is the meaning of the verb くる.
In (b), we are inside the house (=here), and the person leaves, i.e. moves from "here" to some other place that is not "here". And that's the meaning of the verb いく.
But if you just use 出る then the locative specification (the information from where the person comes, and where the person moves to) is simply missing.
However, there is also a temporal use of ~てきた・いった. That is not surprising because linguists know that many languages treat temporal expressions like locative expressions. Most of the examples in @Yang Muye's comment under the question have a temporal meaning.
c. 雨が降ってきた。
It had come to rain.
d. 物価は上がっていくだろう。
Prices will go up from now on.