I've written one using NSIS Installer + xdelta3 executable (excellent for progressive patching, similar to what osi was doing in the past) + 7zip and a wrapper that is public on the google code page of xdelta3 (with the wrapper you can do directory patching, since xdelta3 is file based patching), I've even written another wrap in c#, If I find it I'll put into that googlecode page too.
And of course a lot...lot...lot of time and patience.
One single error and you're screwed, not counting that you have to take into account at least the OSes from Windows2k to Windows 8, that's what I've done and the result is quite good...And it's not even that difficult.