All depends on what type of sand bed you want to run. Deep Sand Bed (DSB) or Shallow Sand Bed (SSB).
For a DSB - You should use sugar sized sand at a height of 4 - 6". A DSB is good in the fact that you don't really need to stir it up as it is suppose to promote breaking down any dietrus that collects on the bottom of your tank. The problem with a DSB though is it can be more prone to cyano as dietrus builds up and doesn't get broken down quick enough. Also, with sugar sized sand, if you have too much flow it can kick up easily and create a sand storm in your tank. Also, over time gases can build up in the sand bed and if something were to burrow and open one of these pockets, it can cause some serious tank issues.
For a SSB - You can use Seaflor Special Grade or larger particle argonite if you wish at a height of no more than 2". For a SSB, you need to either vacuum it or stir it up once every week or two. This just allows the dietrus that collects to be sent up through the water column and collected by your skimmer. The nice thing about the Seaflor Special grade is that it is heavy enough that it doesn't produce sandstorms but is small enoough that you can handle wrasses and other fish that like to burrow into the sand bed. This is the direction I went and I find it the best option as you can clean it if you have a cyano breakout and no sand storms. if you don't maintain the sand bed though and stir it up once in a while, it will cause you some nitrate issues.
As for Marco rock, Sealife Central has the biggest selection in-stock I believe. They also have shelf pieces which are very nice to aquascape with and provide lots of surface area for coral placement.