For example, Ethereum implements a number of tactics to achieve that:
- relatively large memory size and bandwidth requirements.
- linearly growing memory requirements over time.
- announced plans to deprecate mining altogether and switch to proof-of-stake, turning all specialized hardware into pumpkins when it happens.
I don't know that it's necessarily enough to make ASIC miners impossible, but it seems to have had some success at keeping the bulk of the mining on GPUs, longer than some of its peers.
Etherium requires a significant memory footprint to compute, whereas BTC and LTC do not. As such, an ASIC was able to have a heap of compute power but very little memory and it'd crunch through as much hashing as a GPU with far less upfront cost.
Etherium on the other hand requires lots of memory, so to add on the memory to the ASIC you essentially kill its competitiveness against a mass-produced GPU from a capital investment point of view.
There are many other types of hashing algorithms, many of which aren't as easily pipeline-able. For instance, if a hashing algorithm requires a few megabytes of memory, than making a custom ASIC isn't going to have such a slam-dunk advantage over a GPU.
They also wanted to avoid GPUs originally, and some new altcoins (also known as shitcoins) try to do this as well from time to time. I've been known to either cloud-mine or what I call "Indian-data-center" mine such coins.
I personally like it when a new CPU-only or GPU-only coin comes out because I can mine with my own hardware. My ASIC miner never made ROI before the Bitcoin difficulty got to high that it would never pay back the power bill costs.