StopAllActions is Cocos2D, not Box2D. What I do to reuse bodies, sprites, particles etc is set visible=NO and body->SetActive(false).
This is to deactivate the object:
CCSprite *sprite = [projectiles objectAtIndex:i];
// Just to continue a loop if the sprite is not visible
if(sprite.visible == NO) continue;
sprite.visible = NO;
b2Body *body = projectileBodyTracker[i];
body->SetActive(false);
This is to reactivate the object:
CCSprite *sprite = [projectiles objectAtIndex:i];
sprite.position = moveToPosition;
b2Body *body = projectileBodyTracker[i];
body->SetTransform(moveToPositionVector, rotation);
body->SetActive(true);
I have written the additional code off the top of my head so I can't completely be sure it is correct (syntactically), but this is the way I do it.