To be clear when you "change DNS" there are two different things I think of:
1) Changing name servers - The name servers should be changed instantly at the registry. DNS cache may come into play. Lets say you are using the name server 22.214.171.124. You visit your website ticketmonster.com. Your DNS server will have cached the results from the root name servers that tell it where to find the DNS records for your domain. You then change the name servers on your domain and visit it again. Assuming you hit the website before the DNS cache expires you will still be hitting the old website.
If you didn't visit the website before changing the name servers (and you are not using a public name server which has cached it because someone else visited it) then you will most likely see the change within a second or two.
There are other exceptions (clusters may not cache the entry as you may hit a different DNS server each time) but that is a basic overview.
2) Changing DNS records on existing name servers - Lets say you are adding/removing an A record. There can be a couple of reasons for a delay. You may run into the caching issue like above. If there are multiple name servers that do zone transfers to replicate the zone you may need to wait until that is done (the TTL's in the zone file can be lowered to make this quicker). If there is some other form of replication involved there may be a delay with that.
There are other cases depending on exactly how the DNS is setup but those are the common reasons I can think of off the top of my head.
Changing the TTLs may help if you require the changes to be made faster but beware some caching name servers ignore them and set what ever they want.