Good question, and one I happen to have a fairly strong opinion on. I have gone over this a few times before, so here goes again.
Egg sinkers are great and work fine, as ling as you are casting them straight downstream of you. They will sink to the bottom and stay there - unless there's a strong slope to the bottom, then they'll slide down hill a bit. Most of my catfishing rigs are made up with egg sinkers (1 to 2 oz moslty) and I cast them straight (or almost straight) back from the boat.
A lot of people like No Roll sinkers. They are rigged and used basically the same as egg sinkers. In little or no current they will stay where you put them a little better than an egg sinker, but in a decent current they will still be dragged ("no roll" does not mean "no drag") if cast across the current.
I fish the coastal rivers, and the bottoms of most are mostly sand. I always have at least one rod rigged with a pyramid sinker. The shape of pyramid sinkers is intended to dig into the sand a bit and grab and stay there. I use the rod with the pyramid sinker for casting out across the current. I still can not cast straight across a heavy current and expect the rig to stay where it lands, but with a moderate current and a 2 to 4 oz pyramid it will stay put fairly well. I also rig this rod with a sliding sinker snap (as is commonly used for surf fishing) so that I can change the sinker easily - changing the wieght or shape to fit conditions.
I am convinced, as you mentioned, that using the wrong sinker, so that a rig is able to move around a good deal after the cast, is the single greatest source of snags for many people. If the rig stays where it lands, then it has a much lower chance of finding a snag, compared to dragging across the bottom until it inevitably finds one.
By the way, the sinker sizes I mentioned are with 15 mono line and water generally less than 20 feet deep. Deeper water, heavier line, and stronger currents will all increase the drag on the line and thereby require heavier sinkers.