Quick answer
deber + infinitive = should, ought to; a duty, advice or a moral pull.
tener que + infinitive = have to; a concrete necessity imposed by circumstances.
deber de + infinitive is different again: it means "must" as a guess — debe de estar en casa, he must be at home.
Side by side
Memory trick
Ask who is applying the pressure. My conscience or good sense means deber. The world, a rule or a clock means tener que.
Typical mistakes
Debo ir al aeropuerto a las seis, mi vuelo sale a las ocho.
Tengo que ir al aeropuerto a las seis, mi vuelo sale a las ocho.
A flight time is an external necessity, so tener que. Deber here would sound like a personal resolution rather than a fixed constraint.
Tengo que ser más paciente con él.
Debería ser más paciente con él.
This is self-criticism and advice, not an imposed rule, so the conditional of deber fits and sounds far more natural.
Check yourself
Your visa expires Friday. Which is more natural?