Ah, you very well may not have a memory leak, if you're basing your suspicion on Task Manager. People who don't understand how Win32 OSes manage memory often misread the numbers in Task Manager.
Task Manager will show you several different memory numbers, it just depends on what columns you have enabled. For example, "Working Set", "Peak Working Set", and "Virtual Size" are the most common, but there are several others still that measure page faults, shared bytes, private bytes, etc.
As gafdpc points out, looking at a number without knowing what it means can mislead you. For example, people will often look at Virtual Size and assume that's how much memory is being used. It is not. Nearly all Win32 applications request from the OS far more memory than they ever actually use. The OS doesn't actually set aside all of that memory (unless perhaps you have tons of RAM), but provides it as the application attempts to use it. If necessary, a page fault will occur which causes lesser used RAM to be swapped to disk and that RAM is assigned. Working Set is a group of memory pages that the application thinks it needs, and due to how the OS memory manager works, it will often creep up until such time as the OS decides that something else needs the RAM. At which time you'll see Working Set decrease as RAM pages are taken away and given to something else. However it does not mean the application is actively [i4c0708a329]using[/i4c0708a329] all of that RAM at any given time. If you leave an application open (that doesn't have a bad memory leak), you will see Working Set and Peak Working Set climb for awhile, but then later you'll see them shrink, then climb again, etc. The OS is pretty smart about such things, and is constantly trimming and tweaking process memory. For example, when an application loses focus, it will give up a large chunk of its RAM. When minimized, it will lose even more. If no other process really needs more RAM at the moment, the OS will let a process just accumulate RAM pages until it IS needed.
So if you have a reasonable amount of RAM in your system, performance is seldom impacted unless you run a huge memory hungry app that suddenly causes everybody else to be paged to disk. Or an app with a true memory leak ties up huge amounts of memory.
If you have 2GB of RAM, for example, and see an application showing a working set of 70MB, or 170MB, it's a drop in the bucket and will in no way affect your system performance UNLESS you have 20 such apps running at once. IT JUST DOESN'T MATTER! This is what I was trying to explain to people a few months back who were arguing against Azureus for being a "memory hog." Most didn't understand what they were saying, they were just repeating what others say (who didn't know what they were saying). They didn't stop to think that their overall system performance isn't affected.
My primary Windows machines often go days between reboots, and most of that time they have at least one Firefox instance open. Sometimes several, and most have multiple tabs open. I also run a few Linux boxes that are never rebooted, they're up 24/7, and some have uptimes of over 6 months or more since the last reboot (which was a power failure that outlasted the UPS). I will often go for months leaving BOTH Azureus AND Firefox running on these PC's. System performance has never become an issue, which pretty much proves that neither suffer any major memory leaks or "hog" effects.
Here's an article[=http//shsc.info/WindowsMemoryManagement]Here's an article that attempt to explain how Windows Memory Management works, and it specifically mentions Firefox as well as the wrong assumptions people make about application RAM usage.