simply put, hardware rendering uses only your hardware to render the image from the render buffer and therefore will not render reflections and not support raytracing, as this requires calculations, which brings you to software rendering: software rendering depends on code/calculations/computations (whatever) for all these effects. Hardware rendering is fast because it does not do all these calculations, and software rendering is slow because of the calculations. This, again, is why (some type of)particles can only be hardware rendered, where you need to use other programs like After Effects to add glow or so to them.
hope this is a bit clear. I have the details of both rendering options clearly defined in a book at home - will pass those on when i get home.
A conscious power has drawn the plan of life...