Oui, vous avez besoin d'un div encapsulant:
<div id="logo"><img src="logo.jpg"></div>
avec quelque chose comme:
#logo { height: 100px; width: 200px; overflow: hidden; }
D'autres solutions (remplissage, marge) sont plus fastidieuses (dans la mesure où vous devez calculer la bonne valeur en fonction des dimensions de l'image) mais ne permettent pas non plus efficacement que le conteneur soit plus petit que l'image.
En outre, ce qui précède peut être adapté beaucoup plus facilement pour différentes dispositions. Par exemple, si vous voulez l'image en bas à droite:
#logo { position: relative; height: 100px; width: 200px; }
#logo img { position: absolute; right: 0; bottom: 0; }