How do you strip material off a mesh?

Is there a better way to strip material off a mesh than using boolean operations? For example I have a cylinder rotated 90 degrees so that its laying on its side, parrallel to the x-axis. I want to mill a small half-circle channel on the top of this cylinder. But when ever i try to do it with boolean subtraction/difference functions in blender I get this wierd thing that sticks way out past the end of the cylnder its almost as if it mills the channel out but then it sticks the very end of the smaller cylinder which i used for the boolean difference on it… I hope somone can sort through my nasty description and help me out im really lost.

You can model the channel first and then extrude the rest of the shaft from that.

Add a circle with about 24 verts. Use 4 of them to shape the channel in cross-section. Select all the verts except the prev 4 and use “To Sphere” at 100 %. Select all 24 verts and extrude to make the shaft. Center New, SetSmooth and Ctrl-A.