How can I add motion to a rigid body?
Using keyframes is the only way I know of to do this currently, but you should be able to get good results by allowing the rigidbody object to be controlled by the animating system, then switching control back to the physics system while maintaining momentum gained from the keyframe animation.
This can be done by animating the Animated option in Physics &gt; Rigid Body.
See the wiki:

The most common trick is to keyframe animate the location or rotation of an Active physics object as well as the Animated checkbox. When the curve on the Animated property switches to disabled, the physics engine takes over using the object's last known location, rotation and velocities.

Also see this post
For example:

Enable Animated on your rigidbody object and insert a keyframe by right clicking on the check box and selecting Insert Keyframe:


On the same frame, add a location keyframe (or rotation if you want some angular momentum) to the rigid body object

Go to a later frame and insert another location keyframe

On the same frame, disable Animated and insert a keyframe by right clicking on the Animated checkbox and selecting Insert Keyframe again.


The motion from the keyframed animation will be carried over to the motion of the object as it is controlled by the physics system.
Result:

Note that while Animated is enabled the object will still interact with other rigid bodies, however its motion will be controlled by the animation system.