There's a reasonably well-supported Intent for this (worked on my testing on at least a half dozen different Android 2.1+ phones, including SenseUI and Motoblur devices, and I believe it's been around since Android 1.0 or earlier on the G1). This might get you started:
final Intent intent = new Intent("com.android.camera.action.CROP");
intent.setData(uriOfImageToCrop);
intent.putExtra("outputX", 400);
intent.putExtra("outputY", 400);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("noFaceDetection", true);
intent.putExtra("output", Uri.fromFile(someOutputFile));
startActivityForResult(intent, SOME_RANDOM_REQUEST_CODE);
Then just handle what you need to do in the onActivityResult() method of your Activity; your output file should have the cropped image in it at that point.
To be safe, though, you may want to have a fallback behavior (autocrop? Don't crop?) if someone has a device that doesn't support this Intent.