I really dislike coming to the end of a 3 day or 2 week long sock project and know that i have to weave in 30 ends of yarns, especially in colorwork. As a result, i have come up with a few ways that will work in most cases to deal with that as you are knitting.
Adding a new color:
When i know i will be adding a new color next round in stranded knitting, i start by draping the new color of yarn to be introduced next round over the current working yarns with a 6 inch tail.
Finishing a color you are done with:
When you are finished with a working color and want to break it off, and your knitting isn't pattern dense, you can break that color at the beginning of the round, leaving a 6 to 8 inch tail. Then pick up a different color of your choice... usually one that is closest to the color that you just broke. Hold the two yarns double and knit with them until the broken yarn is .5 inches long, and leave on the inside of the sock... then continue with the other live yarn. You can see below in my ombre Blender socks, specifically on the dark toe, there are flecks of coral and black together, that is a broken coral color being held double and knit with black. If you don't mind a mix of the two colors, it's a great way to not have ends to weave.
You can also knit one to three stitches with the color you have broken off held double with the still live yarn, being sure that the live yarn is behind the broken yarn so it will be more hidden, then for the rest of the round or row, hold the broken yarn in your secondary hand and trap it every 2 stitches like you would when working stranded knitting.
Find me on Ravelry: squarejane