I'm going to make a wild guess and say hardware decoding is preferable. If the hardware is dedicated to the task it frees up the CPU to do other things. Software decoding requires the CPU to perform additional processing that could be needed elsewhere.
Assuming the GPU and CPU (and rest of machine) is capable, and your HTPC software offers a choice, what is the prefered method - Hardware or Software decoding?
Easy - it's the same answer to all software questions: it depends.
It depends, but generally, the GPU is better for efficiency reasons. If your CPU and GPU can equally decode the format, then GPU is the way to go since it will save energy and allow the CPU to perform other operations (such as scanning your library in the background, or AV duties).
Although you assumed that your CPU is sufficient, some GPGPU (general purpose GPU) duties are beyond some or many CPUs depending on the software (I'm looking at you MadVR at 1080i60).
On the other hand, some GPGPU code is better at processing the same format and can eliminate issues that complex GPU code can introduced.
There is wide debate on whether CPUs performance will eventually render GPUs obsolete. My opinion is that GPUs are here to stay since there has been a recent emphasis on green computing.