Cats are clean animals so body odour tend to signify illness, most likely a skin disorder or an ear infection. Either way, body odour on cats is not normal and you should get him inspected by a vet. Most skin treatments can be dealt with using medicated shampoo.
Your cat is most likely ill. Cats instinctivly groom themselves, and if your cat does not- it will stink. A cat usually only avoids grooming if they are ill, in pain, too thirsty to waste saliva licking their coats (kidney issues mabye), or weak. If your cat IS grooming and still has an offensive odor, chances are that they have an infection. Smell your cat to see if you can identify the odor coming from a local area like the ears or rear end. If it's their ears, they might have a nasty ear infection or lice infestation. If it's from the rear end, they might be in heat, have impacted anal glands, or genital infection. Cats normally smell a bit like light dust or clean sand. Also, if your cat uses clumping litter, they might be constipated or have clumps stuck to their paws. Check for that too. Hope this helps.
Don't rats and snakes abhor cat body odor?