Mike,
Yes, this is a best practice. So, for incoming calls, you could have something like:
dial-peer voice 1 voip
destination-pattern 1112223333
session target ipv4:1.1.1.1
dial-peer voice 2 voip
preference 1
destination-pattern 1112223333
session target ipv4:2.2.2.2
If the CM at 1.1.1.1 happened to be down, incoming calls would be handled by the CM at 2.2.2.2.
Hope this helps.
Brandon