For the ultimate low cost solution, and assuming your device has internal ESD substrate diodes, use a high value resistor in series with the input, in the range of 220K-470K. That's it. (Don't do this on the MCLR pin of a PIC, there is no ESD diode to the positive rail and a transient will put the MCU into programming mode.)
The better solution is to use the RC circuit you posted, but I'd change the 1K to 100K, the cap to 10nF and add a diode in parallel with the cap (anode to ground) and another diode from input to VCC (anode to input). 1N4148's will do. Any transient glitches, positive or negative, will be bypassed to the supply rails via the diodes. The 10nF will help a bit with switch debouncing too.
All this assumes you're using a CMOS MCU, but you mention TTL in the post. The previous paragraph still applies, but 1K is about right depending on the TTL family you're using.
You don't need to use any components that are rated to 1000V, normal components will be fine. A small radial ceramic capacitor will easily survive an ESD event if there is a series resistor in place. After all, the capacitor is there to limit the voltage at the input pin. The resistor bears the brunt of the transient voltage, and any bog standard 1/4W axial metal film resistor will be absolutely fine.
Varistors are great for high energy transients but are relatively slow, and TVS diodes are great for very high speed and medium energy applications but will almost always fail short given a large overload. But for simple switch interfacing, large series resistor and cap down to ground is very reliable and effective.