Bottom line, if you want the paint to stay on, and if you even want to paint the engine the same color as the car and have it last, use a quality etching primer, AFTER you have got every speck of oil off the block and washed it down with soap and water. Etching primer can be bought in spray cans from parts stores but it's less expensive if you get some from a body shop and use a small gun to spray it on.
If you're just using standard engine paint, they all sell engine paint primer, but it's no where near as good as the etching primer. You can get etching primer from Eastwood too!
Sonny
http://racingstudebakers.com