Non-GUI related... The default GC will appear to "leak" a certain amount of memory, when you run an app for a short time. But in reality this is more like having a bin which fills up and is then freed at some point during GC collection.
If you run the app for a longer time, you'll see that memory usage levels off.
I don't think that should characterized as a "leak" even with quotes because it's really not. I think that just confuses people.
if your app keeps growing then like Brucey suggested, you most likely have a circular reference somewhere. that happens when an object points to another object that points back to the first. in such a case the object's reference count won't go to zero when it's out of scope until you break the chain. you do that manually by nulling the pointer.
in my projects I watch for leaks all the time as I'm developing, with code similar to below. it very simply prints the current allocated mem and the max allocated mem. if the max continues to climb when I don't expect it to then I have a leak. running the code below should allow you to see the GC's mem deallocation pattern and how it levels off after many iterations.
SuperStrict
Graphics 640,480
Global peakMem:Int
While Not KeyHit(KEY_ESCAPE)
Cls
Local currentMem:Int = GCMemAlloced()
If currentMem > peakMem Then peakMem = currentMem
DrawText currentMem+" -> "+peakMem,10,10
Flip
Wend
my machine levels off at 87202