A memory leak occurs where a computer program allocates memory space for doing calculations, creating lists, data structures etc. using temporary named blocks or spaces of memory called variables or using memory pointers (e.g. as in C and C++). Once the action, calculation or whatever is completed, the program should register that the space is free to be used again.
A leak occurs when the program does not release this memory or the release fails and more and more memory is used. One symptom is that you eventually run out of Random Access Memory space when you try and run additional programs/applications and the computer needs to then page to disk. Symptoms are a hideously slow computer, out of memory warnings, disk light on almost full time and programs that simply won't run. Solution, shoot the programmer!