Should MySQL slave have the same version or higher than Master for replication to work properly?
The headers of binary logs are different.
MySQL 5.5 has a 107 byte header in a binary log.
MySQL 5.1 has a 106 byte header in a binary log.
MySQL 5.0 and prior has a 98 byte header in a binary log.
So, by all means, use the same version on both master and slave. Higher version on the Slave is OK.
I would go for the same version to avoid any incompatibilities. Since the queries are executes "as is", both machines need to interpret them identically.
If you can not match the version, go for a higher version on the slave. However, in my own experience MySQL has been known to add "reserved keywords" in newer version, which broke certain queries for me. That might not be a problem since it's a binary log that is used for replication, not plain text queries.