Depends on the condition of the top, and your end goal.
The top is most likely fiberglass, and is already painted. If you wanted to rhino line it (bed liner), simply scuff up the paint with 800 grit, clean it well, and spray/roll on the bed liner.
If you want to actually get a more glossy/automotive finished look then the key is in the sanding process.
Assuming the top is in good shape, you could start with an 600 grit paper and again scuff up the existing paint, and smooth out any imperfections. Depending on the shape of the top, you may need to start with a lower grit, 400 should be able to sand off any major imperfections. Then start with a basic automotive primer you can get a "buildup" primer if there's a lot of areas that need covering up.
Give it two coats primer, allow a few minutes in between to dry, then sand it again with 800 grit paper, clean it, and give it another couple coats of primer, repeat process if needed.
You should have a nice an smooth surface now that is now ready for paint, you can use a standard rattle can and get a pretty good finish, again it's all about the sanding. Give it two coats of paint, let it dry and then wet sand it with 1000, or 1200 grit to remove any runs. Give it a couple more coats of paint, you may need to sand again with 1500 grit paint, another coat of paint, and a final sanding of 2000 grit paper.
Once complete, you can start applying some clear coat, same process, but start with a 1500, and finish with 2000, for an ultra finish, you can finish it off with a rubbing compound, and a nice coat of wax.
There's a lot of manual labor involved with painting on your own, but if you have the time and patience, then you can achieve a nearly professional looking job.
Personally, I would do the initial prep and primer, then take it to Maaco for painting. Most of the "cheap" paint shops are fine painters, they usually don't put the time into the prep work, this is why they can paint for cheap.