First of all remember to import the file and folder Joomla helpers:

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

Function has parameters to set if we want to create the destination folder or overwrite existing files.

Returns 0 if found any errors, 1 if creation was succesful or null if the destination file already exists.

        /**
     * Move a file with creating destination folder && overwrite options
     * @author Roberto Segura - Digital Disseny, S.L.
     * @version 11/07/2012
     *
     * @param string $srcFile
     * @param string $destFile
     * @param boolean $createDestFolder
     * @param boolean $overwrite
     *
     * @return 0->error | 1->ok | null->already exists
     */
    static public function moveFile($srcFile, $destFile, $createDestFolder = true,  $overwrite = false) {
        if (JFile::exists($srcFile )) {
            if (!JFile::exists($destFile) || $overwrite) {
                // do we have to create the destination folder ?
                $destFolder = str_replace(JFile::getName($destFile), '',$destFile);
                if (!JFolder::exists($destFolder)) {
                    if (!$createDestFolder || !JFolder::create($destFolder)) {
                        return 0;
                    }
                }
                // move the file
                if (JFile::move($srcFile, $destFile)) {
                    return 1;
                }
            // destination already exists and we don't want to overwrite
            } else {
                return null;
            }
        }
        return 0;
    }