Talk probably comes from Old English tellan "say, tell," which is the source of our tell and tale.
That explains why there is an <l>. In talk the <k> appears to be the fossilized remnant of an
obscure suffix that marked frequentative verbs or was an intensifier, as in other verbs like stalk,
walk, and lurk. There is no [l] in talk because in Middle English [l] tended to be lost between
vowel sounds that became Modern English [o] or  and [k], as
in stalk and walk, and in balk, calk, chalk. Actually, the [l] is also often lost in a number of
settings: between [o] and [k], as in folk and
yolk; between [o] or  and [m], as in almond, balm, calm, palm, psalm, and between [a]
and [m] in salmon. Other words with lost [l]: half, halves, could, should, would. In the
contractions shan't and won't the <l> has also been lost.
This loss was not absolutely consistent in earlier centuries, and is not entirely so today. Some of
these words have variant pronunciations, with and without [l], the latter cases often being
instances of spelling pronunciation (AES, 26.4.2, 126.96.36.199, 188.8.131.52, 184.108.40.206, 220.127.116.11).