A memory leak is a process where memory gets allocated to a task and does not get de-allocated. Repeating this several times will eventually cause a memory resource issue (RAM's not infinite). People writing fancy widgets in C++ can cause such!
Its a complex area to discuss because many factors can effect this, being the OS your using, the development platform/Language.
There are many tools out there to analyse this and other issues related to resource management. I use to use Boundschecker years ago in the old Win 3.1 days.