Recursion literally is using yourself to define yourself.
That probably makes god the ultimate recursion, if he said "I am that I am". :D
But seriously in programing many times the nature of processing a task can be expressed recursively in a better way than procedurally.
Recursive functions or programs often behave on lists of data, for instance, if you have a list of names like this:
Jack, James, Jeff, ...
You might need to process the list to determine if there is a "girls" name in the list.
As you read the question, you probably Thought it was trivial, only three names, but even with this list of 10, your mind will look at each one, and decide "is this a boy's name or girl's name?" If it's a boy's name you continue to the next name in the list:
Jack, James, Jeff, Jerry, Jimmy, Jill, Joe, John, Jules, Julio
Even with 10 you recursively read the names one at a time until you hit "Jill".
What if there were thousands of names. The procedure is the same even if we might die of boredom executing it.
So a recursive description of the name problem:
Determine if a list of names contains a female name.
A) with a list of names, examine the first name.
B) Is the name Female? Then answer "Yes"
C) If not, are there anymore names in the list? If not then answer "No"
D) create a list from the remaining names and pass the new list back to A).
Do you see the recursion? the Process, uses the "process" to define itself.
Unfortunately, the truth is recursion is often a difficult concept to grasp, and even if you do get it, there are always non-recursive solutions to the same problems. But recursion does serve a purpose because some types of problems are easier to solve in a recursive manner.
Good Luck