The best all round option I know of would be Cerakote seeing as it's used for gun parts and industrial things, and it's very hard wearing from seeing its applications. Plus I've seen people use it for their own keyboards. However I don't know of any services that would do it for me in the UK, plus it's very expensive.
Other options I've looked at are plastic sprays like Plastikote, Rust-Oleum and Krylon.
I've seen someone use Krylon on a keyboard and they say it's pretty hard wearing, which sounds good. The thing with that however is that I can't find many UK suppliers--there's one on eBay which sells a prismatic effect can that I don't dislike. So I may go for that.

If anyone has any suggestions from personal experiences, I would be pleased to hear!