Flagstone of all shapes and sizes
Aquarium Silicone (Available at any fish supply store)
Make sure that you soak and clean your rocks VERY VERY good. When they are clean and dry set each rock into place with the silicone. Let dry for 24 Hours and then soak in the bathtub for a few hours in cool water and water contitioner. When it is done soaking place it into your tank. Make sure it is not to heavy..if it is make sure you brace the bottom of the tank with some plywood.
Another thing is do not place the rocks on the glass to the sides of your tank. It will scratch your tank. Make sure your caves have an entrance & exit for your fish. They love to swim in and out of the caves.
Here is a picture of my newest rock cave...