I agree with Ken. The difference is one of attitude, and it has to do with how valuable your time is.
In general, you use 'last' for something positive. For example, good quality clothes and products last for a long time. A marriage or relationship that lasts a long time is a good thing. If it's something good, you want it to last a long time.
'Take' can have a more negative quality. The time that something 'takes' is the time that is NEEDED for something to be finished. The implication is that you want it to be over as soon as possible. For example, if you have you car fixed or your clothes dry-cleaned, you ask how long these jobs will take. You want the time to be as short as possible.
As for the tour, it depends who you are.
The tour operator might say 'The tour lasts two hours'. They would say this to convince the tourists that the tour is good value for money.
Meanwhile, a tourist who would rather go shopping or go to the beach might complain that 'The tour takes two hours'. For them, the tour is a waste of time and it is ''taking' time that they'd prefer to spend elsewhere.