"Wij gaven onze zoon een hond."
Translation:We gave our son a dog.
Both are fine, but schenken is quite formal (so normally used gift giving in formal settings). So you would normally use geven for a gift to your son. A schenking to a close relative usually is a large amount of money (that has to be registered for tax reasons), so this is made formal in a legal/tax sense.