I bought ants to help improve the performance of our .Net Desktop Application and am getting a high Thread Blocked % with no description of where it is happening. In frusteration, I created a basic .Net C# app with no controls at all and when I run the profiler it tells me 50% of the time this app too is thread blocked, what the heck? What is this telling me, should I ignore this value or what?

'Thread blocked' is the time a thread spends inactive, waiting to be woken up (eg, because it is waiting for IO to complete, some user interaction or for a lock to be acquired). It's not time spent running on the CPU and is often not very interesting in terms of performance, so you can select 'CPU time' to eliminate this time from the results. You can also use the thread drop down to focus on individual threads.

In this case, I think you're seeing one of the garbage collection threads waiting to be activated. A top-level 'thread blocked' like this indicates a sleeping .NET thread that isn't running any .NET code at all.