Use a third-party long-exposure app
If you're noticing graininess even with exceptionally reduced exposure when using the phone's native camera app, consider downloading a third-party app like Cortex or Camera+, which both have the option to enable extended exposure times. This will cut down on noise and produce much crisper, clearer finished shots -- it can also produce some really interesting color-blurring when your subject is moving (think fireworks or car headlights).
Try "torch mode" when a flash is necessary
Although it'll set you back a cool $3, Camera+ boasts a suite of excellent and worthwhile features, including what's known as "torch mode." This enables you to preview how up-close subjects will look in a flash exposure, by keeping the flash constantly illuminated. This is helpful because flash photos are generally tough to frame in low light, since your subjects are dark (or even invisible) in the viewfinder except for microsecond the flash goes off.
When all else fails, convert to black and white
If you've tried everything but are still having a hell of a time getting a clear shot, consider processing the shot in black and white (using the camera app's own edit tools) to emphasize the contrasting light levels (which will better define your subjects). Lingering graininess also tends to look much, much better in black and white than in color.