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