The difference is (in most of the cases):
Мне нужно + noun - i need something (i'm lacking something) - Мне нужно пиво (молоко, хлеб)
Мне надо + verb - I need to do something - Мне надо сходить (принести, выпить)
"Нужно" can substitute "надо" but usually not vice versa.