Tower aggro is relatively straightforward. Going from highest priority to lowest priority (this is observed, not necessarily 100% always true):
1. Enemy champions damaging friendly champions
2. Other enemy units (Rally flag, Teemo's mushrooms)
3. Closest enemy minions
4. Closest enemy champions
One a tower has chosen to attack a champion, it will not change targets for any reason unless he has moved out of range or become otherwise untargetable.
The other important thing to know about towers is that when they attack heroes they gradually increase their damage. Ex: We'll assume the tower deals 100 damage, increases at 10% per shot, and maxes at 155%. If a champion tower dives alone and takes all tower hits, it would look like this:
85 damage (starts at 85% standard)
95 damage (increased by 10%)
105 damage (increased by 10%)
115 damage (increased by 10%)
125 damage (increased by 10%)
135 damage (increased by 10%)
145 damage (increased by 10%)
155 damage (increased by 10%)
155 damage (damage is maxed)
When the tower switches targets between champions, the damage will decrease to 125% standard if it is above that. Using the previous example:
85 damage (starts at 85% standard)
95 damage (increased by 10%)
105 damage (increased by 10%)
115 damage (increased by 10%)
125 damage (increased by 10%)
135 damage (increased by 10%)
145 damage (increased by 10%)
*Tower switches to Champion B*
125 damage (reduced to 125% standard)
135 damage (increased by 10%)
145 damage (increased by 10%)
155 damage (damage is maxed)
The only way that this damage increase will go away is if the tower hits a minion or doesn't perform an attack for 4 seconds.