I've heard this sentence in an American movie and in an English series:
What can I do you for?
I don't understand why for is used after who... I suppose it is not correct, is it? Is it colloquial? Do you use it normally?
Yes, it's colloquial and jocular. The standard form of a polite offer of help (a shop assistant might say it) is 'What can I do for you?' The joke here is that there is an idiomatic usage 'to do someone [for something]', meaning 'to take advantage of someone's gullibility/naivety'. It's very colloquial: 'This bloke comes up to me and says "Excuse me, I'm new here"; so I done 'im for a tenner' [a ten pound note].
So a person saying 'What can I do you for?' is offering help, but threatening, in a joking way, that s/he may take advantage of you if you're not careful.
It's a little dated now.
b
Oh, thank you so much, indeed! I had been thinking about it with my friend for quite a long time! ;)