There are lots of choices for substrate. You can use gravel, but it's probably not the best choice. It can be difficult for plants to root in it well, and it has no nutrients. Pool filter sand is cheap, and plants root in it very easily. But again, no nutrients so you would need to fertilize the water column and/or use root tabs.
There are a number of substrates made specifically for planted aquariums, some of which can be rather pricey. Eco Complete and Fluorite don't have a whole lot of nutrients, but have a good cation exchange capacity, which means they are able to grab and hold nutrients from the water column. Amazonia has lots of nutrients to get a tank off to a good start (although at some point the nutrients begin to run out, and you will need to start fertilizing).
Some products not specifically made for aquariums work well, such as Soilmaster Select (no longer manufactured, although some of us still have a bag or two squirelled away

) and Turface. Cheap, no nutrients, but good cation exchange capacity. Very light, which makes it hard to plant some plants. Plants root in it very well.
Another inexpensive choice is topsoil or potting soil, or mineralized soil, capped with sand or gravel. Here is an excellent article on how to make Mineralized Topsoil Substrate:
http://www.aquaticplantcentral.com/f...on-talbot.html
This is by no means an exhaustive explanation of all the substrates available, but hopefully is enough to give you some ideas. I don't think there is necessarily any "best" substrate to use. They all have their pros and cons. You might want to browse the Substrates section of the forum to see what people have to say about the various choices.