If you want to tackle it yourself, Sakrete will actually do a decent job. The largest aggregate in Sakrete is about 3/4 of an inch, which is not very large as coarse aggregate in concrete. You will want to "scarify" the surface of the old concrete to promote adhesion. Wire brush will help, or sandblasting -- anything to roughen up the surface and get you below any surface contamination.
You also want a bonding agent. Professionals use epoxy, but if you screw up with it you'll never get it all off. Instead, I recommend the following:
1. Use a latex admixture when mixing your Sakrete. The "name" in the industry is Laticrete. What you're looking for is a white-ish latex liquid that comes in gallon jugs. Replace one gallon of mix water with one gallon of Laticrete.
2. The more water you add to the Sakrete, the easier it is to push the stuff around -- and the weaker the concrete. Go for a mix that provides around 3,000 to 3,500 psf strength.
3. In addition to the Sakrete pre-mix concrete, buy a bag of straight Portland cement (not "mortar mix"). The smallest bag they have will do. This will be your bonding agent. Just before you're ready to place the concrete, mix up a "slurry" (a soupy mix) of Portland cement, water, and some Laticrete. Dampen the concrete floor first -- you want it visibly damp, but no actual water standing on the surface. Then brush on and scrub in a thin coat of the Portland cement slurry. Be sure to really work it into the old concrete. Then put your new concrete on top of this before the slurry dries. It'll help the topping stick to the old concrete.