First of all, unless it's intarsia, if at all possible, change yarn at the end of the rows. CW is to never tie off the ends in a knot unless you're working with the slipperiest of yarns, but I, and many knitters I know, do it. It's just way more comforting in terms of the possibility of the whole thing unravelling. You don't have to make a big bulky tennis ball-- just a couple of times so it's secure. Let's say it's on a seam-- I then I weave in the ends going down the seam for a few rows, then change directions and go the other way a few rows. I then clip off the end LEAVING A COUPLE OF INCHES OF YARN. It doesn't look as nice on the inside, but anyone looking that closely as my sweaters needs to find another hobby

. It really prevents those popping ends. The larger your stitches and the looser your gauge, the more it can be a problem, but those longer ends have a much harder time finding their way through the holes than shorter ones. As for anything you've already completed and are having problems with?-- I'd just take sewing thread and needle and tack down the ends on the inside of the garment.