As a native speaker I can say that there`s no real difference in
надо and
нужно. Although you won`t find
надо much in written Russian, because it`s a very colloquial form of "I need" and not used even in polite conversations. The usage of these words is also a little different. Usually we don`t put nouns after "надо" as in the examples above: "мне надо такси". It sounds much more correct if you use it with the verbs: "Мне надо идти"-I have to go. "Нужно" is also used exclusively with verbs, but you can use it with nouns IF you modify this word according to genders:
Мне нужен телефон - I need a phone
Мне нужна ручка - I need a pen
Мне нужны деньги - I need money
You probably came across "надо" a lot more often on RussianPod. But that`s just for the total beginner lessons, because "надо" is not modified according to genders and is easier to pronounce. Although... personally I wouldn`t recommend using too much, it`s rather slangy. Like "I gotta go" maybe, though it`s hard for me to catch the feeling of the English "gotta" "havta"
Должен - is a totally different story. It just mean "must, have to" and implies obligation.
And again, "надо" and "нужно" have the same meaning - "need, should", and only differ in usage and level of speech.