The machine type (or device model) is a list of low-level devices that should be emulated by default, like a chipset, PCI controller, storage controller, etc. This "device model" is thus the base "computer" you'll be emulating, and on which you'll be adding other devices like disk drives, passed-through USB devices, etc.
I believe there is no logic to "choose" the device model and it just relies on compile-time defaults. There might be a notion of "templates" in libvirt/virt-manager and as such there may be different defaults depending on the template you choose (some OSes will refuse to boot with the outdated
pc device model, so different device models need to be present to accomodate different OSes).