I've used Rustoleum (commercial, not the box store stuff) in the last 2 houses and have been happy with the results. I beat the crap out of my floors with cutting, grinding, welding, center stand scratching, and it's been solid since the install. Nice to be able to spot clean easy to see oil and grease marks before they get tracked in the house or roll the crap out and mop once a month. A clean shop is a nice place to work.
Like most have said, prep is key. First house was oil stained and i just used some cleaner with a stiff broom, pressure washed and acid etched. Turned out fine. Second house I rented a concrete sander in addition to the prep above since a previous owner used yellow latex paint on the floor. If you live in a wet area or ride a bike, broadcast some sand on the wet epoxy since it gets stupid slick when wet. I used what ever media was in the blast cabinet at the time.