João,
Yes, they are both okay, but there is a difference.
I expect you for dinner tomorrow.
If you expect someone for dinner you are looking forward to it or anticipating it. You consider it certain and are making plans for your guest's arrival, thus the question: May we expect you for dinner? It means that you would like this person's authorization to make plans for their presence at dinner. They would like to set a place for you at the table, perhaps buy more food, etc.
'May' and 'can' are both used for asking permission or authorization. 'May' is considered more polite.
At a fancy restaurant or formal dinner it is more polite to ask --May I have another glass of water?--than "Can I have another glass of water?".
The differences between 'can' and 'may' seem to be disappearing as our society becomes less and less formal, so I can't imagine anyone being offended if you use 'can' instead of 'may' in this situation. Still, there are formal situations where 'may' would be preferred.