There are a couple of ways on different routing protocols to set a preferred route on the situations that there are multiple paths to the destination.
Below I try to explain a couple of them:
1- Adjust delay parameter on the interface(Lower delay will be preferred)
Router(config)#interface serial 1/0
Router(config-if)#delay 120
2- Adjust bandwidth command on the interface(Higher bandwidth is preferred)
Router(config)#interface serial 1/0
Router(config-if)#bandwidth 1024
3- Change administrative distance on the routing protocol for incoming routes from a router
Router1(config)#access-list 99 permit 10.1.20.0 0.0.0.255
Router1(config)#router eigrp 1
Router1(config-router)#distance 80 10.2.1.1 0.0.0.0 99
The above example will change the administrative distance for 10.1.20.0 routes that are receiving from 10.2.1.1 to 80 on Router1
4- Using distribute list and route-map
One of the best ways on routing protocols is using distribute-list and route-map. Here is an example:
R1(config)#access-list 99 permit 10.1.20.0 0.0.0.255
R1(config)#route-map CHANGE_METRIC permit 10
R1(config-route-map)#match ip address 99
R1(config-route-map)#set metric 80
R1(config)#router eigrp 1
R1(config-router)#distribute-list route-map CHANGE_METRIC out FastEthernet0/0
5- Using offset-list on eigrp, Below example will change the offset and obviously route priority for 10.1.20.0 routes when they are being sent out of interface fa0/1 on route R1
R1(config)#access-list 99 permit 10.1.20.0 0.0.0.255
R1(config-router)#router eigrp 1
R1(config-router)#offset-list 99 out 155 fastEthernet 0/1
6- For BGP which is the biggest routing protocol you can use route-map with “network”, “neighbor” or “distribute-list” commands