Are you feeding it tinned food all the time? Could well be too rich for its stomach, use dried food and bring out the tinned once in a while for a treat.
You can also get an oil that helps the cat pass the fur out the other end rather than puking it back up.