Tempo runs are essentially goal-paced or near goal-paced runs. They help simulate faster paces and conditions that mimic a race environment and help get your body comfortable with running faster. I generally consider tempo pace the fastest (or just under) pace that I can maintain over a given distance.
For example, if I’ve got a 5k coming up that I want to run at 7-minute mile pace, I may run 2-3 miles at around 7:15-7:20 pace a week or so before.
For a marathon that you want to run at 9-minute per mile pace, start by running 4-5 at that pace several months out and add a mile every week or so as you get stronger.
For me, tempo runs are the hardest type of speed work because they require maintaining a race-like pace and mentality in a non-race environment. Doing them with friend and/or training partners or using actual planned event (another race) as a stage for your workout are both ways of making the workout seem easier.