Can one say " "Some of the milk we had at breakfast is sour." Or is only the past tense "was" possible ?
"Was" is natural. It is the milk you already had. It was sour.
That said, the milk still is sour. If someone else is to consume that same milk, then saying it "is" sour is quite all right.
I prefer "spoiled" as an adjective to "sour."
'Spoiled' is not natural to me. I'd say "It is sour" or "It has gone off".
Context is always important; labelling is rarely important.
I don't think I've ever described milk as "sour" or "spoiled". For me, it's just "off".
The milk's off.
The milk's gone off.
Get some more milk later please. This pint's off.
(And yes, I do still refer to milk by the pint, not the litre!)
In AusE: Off > sour > spoiled.
About the main question, it depends which milk is actually being spoken of. If by "the milk we had for breakfast", you mean the container of milk from which we poured our own," you can say, "The milk is off". If by "the milk we had for breakfast", you the mean that actual milk that we ingested, then that is in our stomachs, and has been subjected to all sorts of enzymatic processes.
But I think the main determinant comes from a different context. That is, why are you saying it? If you want the milk thrown out, or some fresh milk bought, it's the first meaning, and you'd probably say "The milk we had is off". If one of you is feeling queasy, the meaning is the second, and you'd probably say, "The milk we had was off".