HBAs are generally used to connect to disks, and can use a variety of protocols, e.g. SATA, SCSI, iSCSI, FibreChannel etc.
Some HBAs also contain advanced features, such as caching, RAID, etc.
The advantage of these can be that you can get more disk connections (e.g. if you used everything up on your motherboard), and you can get the advanced features listed above.
Unless you need more drives, want to offload from the motherboard, use one of the exotic protocols, or want the advanced features, you're probably better off without a dedicated HBA.
I'm a little confused by your question though - you suggest you're going to be running a virtualized server, so I'm not sure why you would want dedicated video or audio cards?