USB host controller has all USB state machine to handle USB devices, enumeration process, ID, etc .. USB device controller has state machine to device enumerate at host at your specific class like mass storage, HID, vendor specific. The specific class, buffer size, endpoint numbers, power required, type of communication (high speed, low speed, full speed, bulk, isosincronous), etc is present at descriptor of device controller. The host has to be able to get this information and correct communicate with the device.
In resume, with a host controller you will be able to communicate with all USB devices, and with a USB device controller you can just communicate with a host controller.
leomecma