In a sense, there really is no difference. Colocation is dedicated hosting.
However, there definately are differences.
Dedicated generally refers to a consumer renting a server on a monthly/quarterly/annual basis, from a server provider. You do not own the server, but rather you are renting it from the provider.
Colocation is the process of buying a server, shipping it to, or simply buying it from the datacenter, then renting rack space in the datacenter.
With colocation you pay for support staff, rack space, the server, shipping and handling of the server, etc. You own the server, and can move it to a new DC at any time, etc.