Is this the correct general method for finding the area between two curves?
Your instinct is exactly right. You find all intersection points, check the sign of f(x) − g(x) on each subinterval, integrate the appropriate difference over each piece, and add everything up. That's the correct general method.
The one thing worth being careful about: you need absolute values conceptually, but in practice you handle it by always integrating (top) − (bottom) on each subinterval rather than blindly computing ∫[f − g] across the whole interval. If you just integrate f − g from the first intersection to the last without splitting, positive and negative areas cancel and you get the wrong answer. Splitting at every crossing and keeping each piece positive is what fixes that.
On your touching question, it depends on what's actually happening at that point. If the curves touch but don't cross, f(x) − g(x) doesn't change sign there, so one function stays on top the whole time. You technically don't need to split the integral at that point, though splitting there anyway won't hurt anything since one of your subintegrals will just come out to zero. If you're unsure whether a shared point is a crossing or just a touch, plug in a value slightly to each side and check the sign of f − g. That tells you immediately whether the functions swapped positions.
The messier situation is when curves intersect at points that are hard to find exactly, or when you have to solve something numerically. But for standard calculus problems the intersection points are usually clean, and your method handles everything correctly.