I've come across two terms translated as 'curse'. Is there a difference between them?
祟り, 呪い
There is some overlap between the two concepts and I have to use the word "typically" to describe them.
Typically, a 祟り is believed to come from angry ghosts, Japanese kami, or similar deities of the world. It indiscriminately affects many people in the form of natural disaster such as droughts, plagues and storms. 祟り tends to be more vague and uncontrollable than 呪い, and the cause of 祟り often lies only in people's imagination. In many cases, it's treated like an (unreasonable) punishment/grudge from silent deities or evil spirits, and all you can do is pray or offer sacrifices to them. One typical example is the curse of 平将門.
A 呪い is typically brought by a wizard, shaman, devil, vampire, mad person, etc., and it usually targets one person, family, item, etc., although a very strong 呪い may cover an entire kingdom. Everything intentionally practiced by a living person to lay curses to something/someone is basically 呪い (or 呪術, 黒魔術, ...) but not 祟り. A typical Japanese example is 丑の時参り. In fantasy works, 呪い is close to a type of magic spell, and a single spell can often be enough to break one.