There are generally two parts to changing priorities: 1) how they fit within the mission of the team and the project – that is are they really changes that need to be made, and 2) the ability for the team(s) to respond to this vision.
For the first part to be even possible, there must be a clear direction and alignment of the team around the purpose and goals for their project. That is called the mission in chartering as used by Industrial Logic. Or, as the shared task, as defined by Christopher Avery. No matter what you call it, everyone needs to be aware of where we are going together. With that knowledge, they can review their current backlog of work, change priorities appropriately, and say NO to things that no longer fit in this shared understanding.
The second part, is the technical ability for the team to choose very thin vertical slices of functionality and take those to completion. Saying vertical slices is easy. To be able to do them effectively pulls in almost every major skill from the agile toolbox: writing effective user stories, test driven development, behaviour driven development, working effectively with legacy code, and perhaps continuous deployment.
There are several areas that will affect the ability to manage changing priorities effectively:
1) Degree of alignment within the entire team. This serves as the backdrop for all the work we do in the future.
2) An effective product management group that is engaged with the team. Product owners must be skilled at creating effective user stories and working well with the rest of the team.
3) Visibility of current state is important to be able to make decisions about when to change priorities. This is as easy as saying we will post our work regularly on physical information radiators. The difficulty is in building the habit that comes through repetition and creating a safe culture that encourages sharing even bad news early. Tools may or may not be considered at this point depending on the needs of the teams on the ground.
4) Reduce work in progress and prefer finishing to starting. This is difficult and also needs a habit.
If you have these two major areas, then you will be able to recognize and respond to change effectively.