The program that NeedKarma suggested is a very good tool to see what's currently going on in your system. It is one I always use to see which programs have certain files open. This program will likely tell you which app is causing your high CPU usage if you happen to catch it in time.
One other app you may want to consider is when you have pesky programs that launch svshost and go off and hide (i.e. they don't stay in memory or in the process table). You know...those pesky pop-ups that come up even though you don't see anything unusual in your process table or even when you don't even have IE launched. For that you'll need something that I'm going to suggest that you may not like (because you like to keep your system trim): Install "Tiny Personal Firewall"
http://www.tinysoftware.com. It will identify/prevent code injections by bad process that exploit trusted services. It will also identify/prevent process spawning by bad processes of trusted services. It also restricts which DLLs can be loaded by specific applications and will flag any deviations for you. Lots of other cool features.
Now, having said that...I generally use this tool when I suspect something is wrong with my system (i.e. IE/Explorer hijacks). Otherwise, I leave it off.
Good Luck.
Casey