Aircraft: B737
Phase of flight: Final Approach
Anomaly: ATC Issue All Types; Deviation - Track / Heading All Types; Deviation / Discrepancy - Procedural Clearance; Deviation / Discrepancy - Procedural Published Material / Policy

Aircraft X checked in at the FAF for the right runway. The Data Tag was in the proper position and indicated the left runway. I cleared Aircraft X to land on the left runway. Pilot read back 'cleared to land'. I did not notice the omission of the runway in his readback. I crossed the next two departures across left runway to depart the right runway. I told the first departure; to 'Line up and wait; 28R'. At this point he had not gotten to the runway hold bars yet. At a 1.5 mile final Aircraft X is observed on lined up for the right runway. I immediately told the departure to hold short of the right runway. Aircraft X continued his approach and landed safely on the right runway without incident or loss of separation. The pilot was never cleared to land on the right runway. According to the Supervisor who investigated the event and talked to the Supervisor at the TRACON Aircraft X had been told by the feeder sector to expect the right runway and was initially tagged for the right runway. Subsequently the Finals sector cleared the pilot for the left runway approach and changed the tag to the left runway. The pilot read back '28R.' Finals sector did not notice.The tag direction and scratch pad saying 'LFT' is the biggest factor that causes expectation bias. I never heard that on check in or on landing clearance readback. Aircraft X never read back the runway assignment to me. The only reason I caught this is that his altitude out the window didn't look right for the left runway; and the ground radar clearly showed him lined up for the right runway. Had I not been monitoring the final I don't know if I would have caught it.The problem here started at TRACON; was exacerbated by the final controllers. I missed the first opportunity to correct it when the pilot checked on over right runway fix and the pilot not reading back the runway. Luckily I caught the error on my second chance once the aircraft showed up on the ground radar.I know that a safety review has already been initiated; but the pilot of Aircraft X should be contacted in order to make him aware that the incident occurred and to hear his perspective; and to let him know he was a contributing factor. We should look into TRACON's procedure in terms of what they do when a pilot is told to 'expect' a runway by one controller; and then assigned a different Runway by the next controller. Is there a 'change to' phraseology? Is feeder required to coordinate to the final controller about the previous runway expectation? The main issue for everyone from TRACON to the pilot to the tower is the power of expectation bias. If Finals sector had known the pilot had previously been told to expect the right runway; I'm certain he would have scrutinized the left approach clearance readback more diligently.We already have put up a sheet in the tower reminding the controllers what fixes are on what approach. Knowing the Runway 28R final approach fix and being aware of that I could have caught the error sooner. Management recently required us to monitor the final inside of 1.5 miles based on a previous similar incident. I was already doing so prior to it being mandatory for exactly this purpose. Monitoring the final on the ASSC (Airport Surface Surveillance Capability) is a great improvement to safety in these situations. SFO Tower Controller reported an aircraft was cleared to land on the left runway; but lined up and landed on the parallel runway.