Actually, there is also only one intersection for [itex]0 < k \leq 1[/itex]. Anyway, here's the proof:
Let [itex]k > 0[/itex]. For [itex]0 < k \leq 1[/itex], we have [itex]k^x[/itex] constant or decreasing while [itex]kx[/itex] is increasing. Hence it is easy to show that there is only one intersection, in fact at [itex]x = 1[/itex].
Now assume [itex]k > 1[/itex] and let [itex]f(x) = k^x - kx[/itex] so that [itex]f(x) = 0[/itex] whenever [itex]k^x = kx[/itex]. Now we can notice a few things.
Firstly, as [itex]x \to -\infty[/itex], we have [itex]k^x \to 0[/itex] and [itex]kx \to -\infty[/itex], and so [itex]f(x) \to \infty[/itex].
Secondly, as [itex]x \to \infty[/itex], we have [itex]\frac{k^x}{kx} \to \infty[/itex] since [itex]k > 1[/itex] and so [itex]f(x) \to \infty[/itex].
Lastly, we can see that [itex]f(1) = k^1 - 1 \cdot k = 0[/itex] for any [itex]k[/itex].
Considering the limits shown above, if [itex]f(x) < 0[/itex] for some [itex]x[/itex], then there must be at least two zeros of [itex]f[/itex] by the intermediate value theorem. Thus, if there is only one intersection, we must have [itex]f(x) \geq 0[/itex] for all [itex]x[/itex]. So [itex]f[/itex] is a minimum at its only zero (which must be [itex]1[/itex] by our last observation above). Since [itex]f[/itex] differentiable, this means we must have [itex]f'(1) = 0[/itex]. Since [itex]f'(x) = \log(k)k^x - k[/itex] so the criteria [itex]f'(1) = 0[/itex] implies [itex]\log(k)k - k = 0[/itex]. But [itex]k > 0[/itex] and so [itex]\log(k) = 1 \implies k = e[/itex] which you observed.