DNS propagation delay can happen due to two reasons.
We have very little control on the first case as any changes done at registrar may take 24 to 48 hours to propagate on Internet (though it's generally nowhere near this long). We can manage the downtime of site in the second case.
To reduce the DNS lookup overhead, every name servers cache the DNS records fetched at a time. The time for which these values remain in cache is controlled by the TTL (Time to Live) value set in these resource records. For example, if the A record of the site has a TTL value, say 14400 seconds (4 hours), then this result will stay in the DNS cache for 4 hours once fetched from the authoritative name servers. If the IP address of this site is changed in between, the name server which caches the previous result will not be able to see this change as it is still fetching the details from it's local cache.
So, to reduce the downtime due to DNS caching, we need to reduce the TTL value in resource records. The procedure mentioned below helps to change the IP address of site with less downtime. It assumes that the present TTL value set is 14400 seconds.