Hardware acceleration is where certain processes - usually 3D graphics processing - is performed on specialist hardware on the graphics card (the GPU) rather than in software on the main CPU.
In general you should always enable hardware acceleration as it will result in better performance of your application. This will usually be a higher frame rate (the number of images displayed per second), and the higher the frame rate the smoother the animation.
GPU's also perform the physics calculations used in many 3D games to simulate falling objects, water, the motion of cars etc. This means that if you don't have hardware acceleration the game won't run at it's full potential or even at all.
Hardware acceleration is also used when displaying normal video, again to allow the CPU to do other things. This means you can play a video on one monitor while still working on that report on the other.
As music2myear points out, any specific purpose hardware can be used to accelerate the processing of whatever it is designed for. This can also include sound cards, but video cards are the most common and what most people will understand by the term.
So, in general, I'd say that you'd always want to enable hardware acceleration. The only time I can think of that you wouldn't would be if you were running off your laptop's battery and wanted to conserve power. Enabling it will take more juice than not having it on - you are effectively running a second CPU after all.