You could list a lot of characters as a potential foil to Macbeth, and you'd have a good case—since he's our title character, almost all of the characters help teach us something about him.
But our money is on Banquo as the most interesting. Banquo is promised glory by the witches, but he figures out quickly that they're no good. Rather than become obsessed with their prophetic promise, he just sits on it, always promising to talk about it later. But Macbeth ignores prudence, caution, good sense, and all those things your parents want you to have in order to carry out his own nefarious interpretation of the prophecy.
So, why is Banquo such a noble fellow? In Holinshed's Chronicles (a major source text for the play) Banquo helps Macbeth murder the King. But Shakespeare's Banquo has to be clean, since King James I of England (a.k.a. King James VI of Scotland) traced his lineage back to the historical Banquo. (James sat on the throne when Macbeth was written.)
Duncan and Macduff represent the noblest aspects of what Macbeth is not; Duncan is a kindly and compassionate ruler, while Macbeth is clearly more consumed with his own powers than the affairs of state. Macduff, unlike Macbeth, does not act rashly. Where Macbeth is inspired by suggestion, Macduff only acts in response to action. His family is murdered, so he takes revenge, which is decidedly different than Macbeth merely hearing that Macduff has fled, assuming he is a traitor, and having Macduff's family killed.