I'd just like to again push my current solution of using a WTDIO 12channel i/o RS232 + RS232 -> IP converter. I have found this very cost effective at around £4-5 per channel and is UDP based where no polling is required, the input is pushed to the miniserver over the socket.
The only issue I have is that on startup you need to send a series of commands via UDP to the device to actually get it to start working correctly. The miniserver is quite capable of doing this however I've struggled slightly to acheive it, this is mainly a time issue on my part rather than a technical limitation.
I've reviewed all the other solutions that people have posted thus far however I haven't seen anything that I think is any better than this solution as, from my experience, the system is probably 99% reliable on single and multi-clicks and also works well with PIRs.
Tom