Welcome to the reason nobody uses Booleans. They’re nice in theory but produce such crap that everyone would rather make seperate holes and attach them or use some other workaround.
Edit: if you’re using subsurf, a topology like this might suffice:
You could try some loop cuts across your mesh near the screw holes so you get rid of thos long triangles. I personnaly think using booleans is the wrong way of doing this as it just gives a really bad mesh that you have to put right anyway.
ricky, if you apply an “edge split” modifier to the object, then set smooth it may help. look at this:
first pic cylinder with boolean cut hole
2nd pic same with edge split, set smooth, quick render
3rd pic same without edge split…crappy
then if you add some more edge loops like richards says (but before the boolean). and also maybe select the edge loop where the hole cuts through the surface and apply bevel (W menu). Even better results:
4th pic with extra edge loops, bevel and edge split
5th pic not bad
i get the whole thing about booleans are bad, but for a quick solution they have my vote!