Question: My guess is it just made parsing easier, but I can't see exactly why.

So what does this have ...

```
do
{
  some stuff
}
while(test);

more stuff

```

that's better than ...

```
do
{
  some stuff
}
while(test)

more stuff

```

Answer: 
Because you're ending the statement. A statement ends either with a block (delimited by curly braces), or with a semicolon. "do this while this" is a single statement, and can't end with a block (because it ends with the "while"), so it needs a semicolon just like any other statement.
C is semicolon-terminated (whereas Pascal is semicolon-separated). It would be inconsistent to drop the semicolon there.

I, frankly, hate the reuse of the while for the do loop. I think repeat-until would have been less confusing. But it is what it is.