Am I correct in assuming that cost and port priority do the same thing? Cost seems to be local to the switch and port priority is set by the upstream switch. Is that the case?
Both parameters are used to determine which interface will be in forwarding state.
They have differences though:
If you want to affect how to the local switch elects the root port change the cost on the links. Cost is cumulative throughout the STP domain. The higher cost is the less preferred.
If you want to affect how downstream switch elects its root port change the priority. This is only local significant between the two directly connected switches. Highest priority is less preferred.
Going away from the root of the tree use priority whereas, when going towards the root of the tree use cost.