Ok, now, a homeomorphic crypto algorithm f has the following additional properties:
f(x+y) = f(x) (+) f(y),
f(x*y) = f(x) (*) f(y),
where (+) and (*) are some mathematical binary operators, that are known. Thus, if I know f(x), f(y), I just perform (+) on these two, and arrive at f(x+y). Notice, I did not need to know x or y, the plaintext data!
The trouble is, finding a crypto with good strength with both (+) and (*) is hard. (Finding only (*) is easy for RSA-like cryptos). Now, for this to be useful, (+) and (*) should not be too slow to perform in practice.
Now, why both + and * ? Well, these operators alone can, when composed together, give any other function:
Using such a scheme, any circuit can be homomorphically evaluated, effectively allowing the construction of programs which may be run on encryptions of their inputs to produce an encryption of their output.