There are, of course, a million different varieties, although one of the best and easiest to make is a combination of saltpeter (KNO3) and plain, ordinary sugar. By weight, the ratio should be between 60/40 and 50/50, depending on your taste. Basically all you do is mix them, and light it. The smoke is non toxic, but it produces a lot of heat and sparks, so don't do it indoors. Now, some crazy people try to melt the two together, so they can cast it into molds and such. I've had some rather bad experiences doing that (there's about a 10 degree margin between melting and holy-crap-my-hands-are-actually-on-fire ignition), and I wouldn't suggest it. On a completely unrelated note, you can also use this composition in building your own model rockets.