Under normal circumstances you shouldn't need to do it. Certainly not frequently. I had my vents cleaned last summer because they very clearly needed to be cleaned. I saw what came out of mine, they were bad. Previous owners had a dog, 2 children, didn't clean, and lived here for 10 years. I don't plan to clean them (other than wiping down the registers periodically) for probably 10 years, if then.
You'll pay per register. It will take much longer than you expect. Mine took about 4-5 hours. Call a couple companies and get per register quotes. They may have deals, so check around. This is not rocket science, it's pretty much the same equipment, same process. You'll need to count every register - both outflow and inflow to estimate price. Despite best efforts, there will be some dust. If nothing else, when you take the covers off stuff falls to the floor. They'll ask if you want sanitizer, etc - don't bother. The brush and compressed air to blow the dirt out. They will need clear access to each register, and to the furnace area. They basically hook up a big vaccum to the main branch of the air vent system and blow all the dirt towards it. Plan to spend some time after they're done cleaning.