Да, вам нужен инкапсулирующий div:
<div id="logo"><img src="logo.jpg"></div>
с чем-то вроде:
#logo { height: 100px; width: 200px; overflow: hidden; }
Другие решения (отступы, поля) более утомительны (в том смысле, что вам необходимо вычислить правильное значение на основе размеров изображения), но также не позволяют эффективно сделать контейнер меньше изображения.
Кроме того, вышеперечисленное можно гораздо проще адаптировать для разных макетов. Например, если вы хотите изображение внизу справа:
#logo { position: relative; height: 100px; width: 200px; }
#logo img { position: absolute; right: 0; bottom: 0; }