Oxyhaemoglobin is red, deoxyhaemoglobin is bluish-purple, and carboxyhaemoglobin is a cherry red colour.
Evidently in the porphyrin around the iron molecule in heme there is a conjugated $\pi$-system which could account for the colour, but how exactly does this work? Also, what is the role of the metal ion (specifically $\ce{Fe}$) in the middle, its oxidation state, or the ligand, in changing/determining the colour in conjunction to that? Do the globin chains play any role in determining the colour (if so, how)?
Chlorophyll, for example, also has a porphyrin motif, but it is green due to having magnesium in the middle. Vitamin B12 is also intensely red in colour (according to Wikipedia).