I use local classes when I need something doing that can be encapsulated, but tightly linked to the main class. If it isn't tightly linked, then I'll use a global class.
If you use a private method to achieve the same, without creating another class, then you are not encapsulating the complexity. This may or may not be the correct approach. It depends on what you're trying to do.