I think you are confusing functional encryption and homomorphic encryption.
- In a functional encryption scheme, using a secret key for some function $f$ on a ciphertext $c$ which is an encryption of $m$ allows you to get $f(m)$ in clear.
- In an homomorphic encryption scheme, you can run some operation on ciphertexts, and get an encryption of the result, for example in multiplicatively homomorphic encryption, $c_1c_2$ encrypts $m_1m_2$ if $c_i$ encrypted $m_i$.
If you want some answers about homomorphic encryption, there exists homomorphic encryption for addition and multiplication, and somewhat fully homomorphic encryption, which supports both of these operation, but there is a noise growing with each operation that reduces the probability of decryption each time an operation is run -this is only a small problem because given the number of operation you want to make, you can set the parameters of your scheme according to that.
If you want answers about functional encryption, recents works follow two paths:
- Ineficient, theoretical functional encryption for all circuits. Which is really interesting for science but is really not practical for the moment.
- Predicate encryption, which is all-or-nothing decryption based on an attribute given in the ciphertext and an attribute of each secret key. There should be practical particular predicate encryption such as Attribute Based Encryption or Identity Based Encryption.
If you want practical scheme that give partial information on the message with depending on the key you have, I don't know of many, but I have a paper that will be presented at PKC15 about Simple Functional Encryption Scheme for Inner Product, this scheme enables you to decrypt $<x.y>$ given a $ct_x$ and $sk_y$.