You say that certain components seem to affect your ability to debug: Do you have the source available for them? You can manually set debugging options in your source with {$D+} (enable debugging) and {$D-} (disable). You can also use {$DEBUGINFO ON} or {$DEBUGINFO OFF}. If you don't have the source I suppose you could explicitly enable debugging in your own source code and try that.
Also unless you specifically need them, delete the follwing files:
.dsk - annoying project info that can get corrupt
.dcp - even more annoying when corrupt
.dcu - incase you have one with no debug info in it and your dsk/dpr somehow forces the IDE to use it!!
... Make sure that they refer to your own projects though!!!
I've found that Delphi has a habit of corrupting dsk and dcp files. The more annoying of the two is a corrupt or out of date dcp since, if you are tracing through a unit, you won't be aware its corrupt until you notice that its tracing through blank lines (i.e. if you add/remove source lines, they don't match up, yet yout dcp file insists on using the last compiled version. However if you only change half a line you will never know!!! This only applies if you are using packages though, and forcing Delphi to do stuff it wasn't meant for.
As a sanity test make sure you compiler debug info is enabled through the IDE (not that this will help you if your compnents explicitly disable debugging. (Project->Options->Compiler).
Taking thats ok, are you trying to debug an out of process com server and using XP? Delphi loses track of processes in XP and it can be a bugger to debug (have to reload modules, pointing to the correct dll (ALT+CTRL+M).
Hope this helps.