Usually a few minutes. The 24 to 48 hours figure is widely repeated and mostly obsolete — it reflects a time when TTL values were commonly a day or more.
What actually determines it
The TTL on the record you changed. If it was set to 300 seconds, resolvers holding the old value discard it within five minutes. If it was set to 86400, some will hold it for a day.
The TTL that matters is the one that was in place before you made the change, not the one you set. Lowering the TTL a day ahead of a planned change is the trick, and almost nobody does it.
Why it looks slower than it is
Different resolvers cached the old value at different moments, so it expires at different times. Your machine may update in seconds while a colleague's takes an hour. That is not propagation being slow, it is caches expiring independently.
When it really is stuck
If a change has not appeared after several times the previous TTL, the problem is usually not propagation. Check that the record was saved at the right provider — where your nameservers point, which is not always your registrar.
This is the short version. The full guide covers it properly: read more.
The full explanation in five chapters: the TTLs and propagation field guide.