Trying to debug D3D errors without the debug layer is tedious at best, voodoo at worst
So true. I wonder how one could sensibly work without (or how a voodoo puppet of my graphics card would look). This should be a pinned thread (though it's mentioned in Evil Steve's thread for D3D9 at least).
Sure one can usually find everything in the docs (yes, tedious), but the debug layer not only reports problems, its verbosity sometimes even directs you at a solution, which is really a bliss.
More on topic: Also get familiar with PIX or the graphics debugger early on. When everything is setup right and you still not getting the desired output it's time to use one of those to check resource contents, slot assignment, device states and debug shader code...