This is what helped me (although I must admit I have completely abandoned dpns for magic loop now, never could quite get the dpns to work properly ).
When you finish knitting say, needle 1, BEFORE you start knitting onto your empty needle, keep using the needle you just finished knitting onto and with that needle, knit the first two stitches of needle 2, THEN start with your empty needle. This prevents the 'gaps' from always being in the same place, which causes the ladders, and staggers the joins throughout so that they are not noticeable. When doing this, the beginning of your round will keep changing so you need to be sure you use stitch markers wherever you need them.
Hope this helps.