Monero makes no attempt to encrypt or obfuscate the data being sent between peers. A passive attacker could monitor the transactions in the same manner to identify the IP that originated a particular transaction.
Unlike Bitcoin, Monero transactions always use ring signatures and always mask recipient addresses (I don't remember if the latter is enforced by the protocol, but the provided wallet always does this). Ringct is also an enabled by default option which masks amounts being transferred. So an attacker with only the information from a single transaction will be unable to determine who is receiving XMR, how much XMR was sent, or which transaction the XMR was originally sent to you.
However, this should not be ignored for privacy leaks. If you send XMR frequently to another person, an attacker passively monitoring both parties will know with increasing probability that you have sent XMR to this person. In other words, the probability of someone consistently using your transactions in a ring signature are low.
There should be some further critical leaks from this technique - I haven't thought about this particular issue much. The integration with kovri will hopefully increase the difficulty for attacks based on passive transaction monitoring. The goal is to broadcast transactions through I2P by default, to obfuscate their origin.
Edit: I should mention that neither your public nor secret keys are transmitted from your wallet to the node. This is true for both spend and view key. And currently the wallet asks for every transaction, so there isn't an obvious leak between wallet and node. However, I would still recommend encrypting traffic between wallet and node, or running both on the same machine. And if you use
monero-wallet-rpc with non standard software things change slightly too.