Well that one is easy enough :) . I can think of two things from the top of my head:
1. The recursive method doesn't have a terminating condition and thus keeps on calling itself until the stack overflows.
2. The method is properly written but the recursion level is so deep that the stack overflows. For instance take the Ackermann function
(
Ackermann Function[
^]) its depth grows so darn quickly that back in the days when I studied computer science we used values less than four for the parameters.
So it all depends on what function you're executing and with what parameters.
Cheers,
Manfred