They are very close synonyms, and are interchangeable. Ought is considered to be a formal version of should. Use should casually, and ought in very formal situations, like business meetings or research papers.
Ought is also more commonly used in the UK or British English than in American English. Should is more informal in both.