You can block incomming connections and that would make your client "invisible" on the Bitcoin network however when you would also never receive any transactions related to your wallet.
Even then when you send a transaction you would make your client visible as it would have to transmit that transaction to at least one peer.
There are a couple of work arounds.
1) Use a web based wallet. In that instance the IP address of transactions is the web based wallet provider.
2) Use a VPN proxy. Maybe companies provide VPN encrypted proxies. Anyone tracing your transaction would only know it originated at the VPN proxy. They can't see beyond that back to your original transmission. You will need to trust whoever is providing the proxy to not keep logs or share data.
3) (future solution) Someday a company may provide a bitcoin anonymizing service. In essence a low cost VPN proxy for bitcoin transactions. You would receive blockchain data from the proxy and the proxy would submit transactions to the rest of network. Obviously in that instance you would need to trust the proxy. This would work similar to #2 but provide two key advantages. The cost should be lower since bitcoin doesn't use much bandwidth and since the proxy would be aggregating all transactions from all anonymous clients it would provide some safety in numbers so that even if someone knew you used this service they wouldn't be able to determine which (if any) transactions are yours.