The other day someone proposed a hard fork of the litecoin protocol aimed at reducing the efficiency of ASICs. The idea of keeping users and mega-mines on equal footing is great in concept but in practice this will ultimately fail. ASICs by their very nature can attack any known problem.
The solution to ASICs isn’t in a different algorithm, rather it lies in changing the algorithm on a regular or, perhaps, random basis. An ASIC simply can’t hit a moving target.
By shifting the algorithm on a regular or random basis the best tool for the job becomes a general purpose processor like a cpu or gpu. Smaller cost-effective FPGAs would require reprogramming for every algorithmic change, and may not work with some algorithms. FPGAs with enough gates to hold many algorithms worth of logic simply wouldn’t be cost effective.
To further harden the protocol developers of such a currency could add new algorithms to the mix, while also removing others. This would give them the ability to fend off any ASIC that attempts to target the currency.