If the class is for internal use within your organization, i.e. you are not distributing this as a general-use library, then I heartily agree that you should make as much private or protected as possible. If later you discover that some other class needs access to a private function, fine, at that point change it to public. It's not hard to do.
My only caveat would be if this is something you are "publishing", where others who do not have a direct line to get changes made will be using it. Then you need to carefully think out a complete API.
But failing that, just write the code you need. Don't write functions that you think you might use someday.