Codominance is when neither of the genes are dominant over each other. This results in a solid mixture of traits. By "solid mixture," I mean they're both involved in the phenotype, but they don't cause a mixed phenotype in the same way that they do in incomplete dominance. A person who got the gene for the A blood type and the B blood type, for example, get a genotype of AB. Not just A or B.
In incomplete dominance, a genotype can cause a "mixed" phenotype. I put "mixed" in quotations because that's not really a word used, but just a word used to describe the phenotype. For example, a snapdragon flower can have two recessive genes that code for different colors. Since they're both recessive, they can't really be dominant over one another. One gene, for example, would code for the color red. The other for the color white. Both of these genes, however, are recessive. If a plant gets both genes, it won't have red or white color. Instead, it will have a pink color.