I've struggled with similar issues, and my impression is that arrogance primarily comes from two misjudgments: thinking too highly of myself, or too little of others. The first was reduced as I realized that I too can and do make mistakes. The second gave way the more I learnt to appreciate and value the people I interact with.
I believe that this second aspect is key. Arrogance is offensive because it belittles others. Humility respects and appreciates the other person. Arrogance thinks my knowledge/skills/wealth makes me better than others. Humility sees the good in the other person, their skills and character traits (that may be very different from mine), and values them for it.
Being humble doesn't mean denying what you're good at, that's false humility. It means appreciating people for who they are and what they're good at, and then treating them accordingly.