No es indispensable... tu tabla puede NO tener un campo ID, pero en ese caso tus modificaciones se complican un poco, por ejemplo...
No es lo mismo esto:
"update TuTabla set TuCampo=12 where ID=1"
Que esto:
"update TuTabla set TuCampo=12 where Campo1='pedro' and Campo2='gómez' and Campo3='
[email protected]' and Campo4='junio' and Campo5='ingles'"
Como puedes ver es CONVENIENTE tener un ID, aunque cualquier indice unico (unique) te ayuda a facilitar las busquedas y actualizaciones.