if I got it for free, then I would not give it back. I think it was a gift for me because of the possibility of wrong delivery address wallet does not seem likely.
A total random mistake like the one I defined above (like having 12rqhr98r98ry98qYR89qr9q or whatever, and sending it to 12rqhr98r98ry98qYR89qr9w because you mistake q for w) is really, really, really unlikely.
But, copy-pasting the wrong address, for example the guy had one of your addresses in the past and he was intending to sell 1 BTC somewhere else but mistakenly copy pastes your address instead
Or you waiting for 0.1 BTC but sender makes a mistake and sends 1.0....
this is more realistic and can statistically happen considering how many transactions happen daily.
In the first case, I would have received a previous transaction and be familiar with the sender so I would return the coins.
In the second case I would also be familiar with the sender and would refund the difference (maybe after subtracting the transaction fee in either case). Now, this could be problematic as the sending address could be from an exchange or a mining pool account and the coins would not actually be received by the sender. I guess it would be prudent to try to contact the person before sending the coins back if possible. Hopefully people would only send coins from wallets under their direct control.
I could never keep something that wasn't intended for me.