Generation III

Assist randomly selects one of the moves known by the user's party allies (including fainted Pokémon) and executes it. A move called up by Assist counts as the last move used. A Pokémon will be able to use a move that is disabled in its own moveset if called via Assist. If there are no moves that can be called in the party, the move will fail.

Generation IV

In a wild Double Battle, a wild Pokémon that uses Assist can use a move the other wild Pokémon knows.

Trivia

The Japanese name for this move, ねこのて Neko no Te (Cat's Paw), is likely a reference to the saying 猫の手も借りたい neko no te mo karitai, which translates to "I would even like to borrow a cat's hands" ("I would even like a cat to assist me"), which means "I need all the help I can get". This is reflected by the way the move works, and that many feline Pokémon are capable of learning it.