Body odour is largely a function of apocrine glands (as opposed to eccrine sweat glands) found mainly in the armpits and genitals. The secretions of these apocrine glands are broken down by bacteria on the skin to produce a foul odour. Diet may modify the odour, but a person without apocrine glands will never have b.o.; he may smell of sweat after a run but that's not considered b.o.
The number of apocrine glands is genetically determined, both individually and racially.
East Asians (Chinese, Koreans, Japanese) have far fewer apocrine glands than Europeans, Indians and blacks. It is believed that only 10% of Japanese have the gene for apocrine glands in armpits while even fewer Chinese (<5%) have the glands.
From Wiki:
East Asians (Koreans, Chinese, and Japanese) have fewer apocrine sweat glands compared to people of other descent, and the lack of these glands make East Asians less prone to body odor.[SUP][14][/SUP][SUP][15][/SUP] The reduction in body odor and sweating may be due to adaptation to colder climates by their ancient Northeast Asian ancestors.[SUP][16][/SUP] Axillary odor is known to be determined by the ABCC11 gene that also codes the type of earwax one has.[SUP][16][/SUP][SUP][17][/SUP] Most of the population secrete "wet" earwax, however, East Asians are genetically predisposed for the allele that codes the "dry" type earwax, associated with a reduction in axillary odor.[SUP][16][/SUP] The non-functional ABCC11 allele—predominant amongst East Asians by 80–95%—affects apocrine sweat glands by reducing production and secretion of odorant compounds commonly found in the perspiration of other ancestral groups.[SUP][18][/SUP] This is due to a 538G>A SNP in the ABCC11 gene, which causes a loss in body odor in people who are specifically homozygous for it.[SUP][19][/SUP]