The short answer
Te amo means 'I love you' in a deep, romantic, committed way. Te quiero means 'I love you' in a warm, everyday way — partners, family, close friends. If you wouldn't write it in a love letter, you probably want te quiero.
Where each phrase actually fits
Te quiero fits almost everywhere. Tell your partner, your parents, your best friend, your dog. It is the most-used 'I love you' in Spanish.
Te amo fits the moments that matter most: anniversaries, proposals, long-distance goodbyes, deep emotional conversations. Save it for them.
What changes by country
In Spain, te quiero handles 95% of romantic moments. Te amo can come across as theatrical unless the relationship is very serious.
In Mexico, Colombia, and Argentina, te amo is common between committed partners, but te quiero is still the everyday default.