iOSのメッセージアプリの吹き出しのようなセルのように、相手と自分かで異なるUITableViewCellを使いたいけど、中身の構成はあんまり変わらない場合の話を想定。
まず親UITableViewCellを一つ作る
xibファイル無しで、一つUITableViewCellを作り、全てのセルで共通のコンポーネントをプロパティで持っておく。
import UIKit
class CommonTableViewCell: UITableViewCell {
    @IBOutlet weak var label: UILabel!
}
親UITableViewCellを継承させて子UITableViewCellを必要な種類だけ準備する
ここではATableViewCellとBTableViewCellを作る。
ATableViewCellにはUILabelとUIButtonを置いておく。

UILabelの方は親であるCommonTableViewCellのlabelと紐付ける。

UIButtonの方はATableViewCellのプロパティとして持っておく。

BTableViewCellにはUILabelだけ設置して、CommonTableViewCellのlabelと紐付ける。

現時点で、CommonTableViewCellのlabelにはATableViewCellとBTableViewCell内のUILabelが紐付いていることになる。
使い方
まずはnibファイルを登録。
override func viewDidLoad() {
        super.viewDidLoad()
        
        var nib = UINib(nibName: "ATableViewCell", bundle: nil)
        tableView.registerNib(nib, forCellReuseIdentifier: "ATableViewCell")
        nib = UINib(nibName: "BTableViewCell", bundle: nil)
        tableView.registerNib(nib, forCellReuseIdentifier: "BTableViewCell")
        
        tableView.delegate = self
        tableView.dataSource = self
    }
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)内では
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let row = indexPath.row
        var cell:CommonTableViewCell!
        // 乱数の3の剰余が0ならATableViewCellを使う
        if (rand() % 3 == 0){
            var aCell = tableView.dequeueReusableCellWithIdentifier("ATableViewCell") as ATableViewCell
            aCell.button.setTitle("Hoge", forState: UIControlState.Normal)
            cell = aCell
        } else {
            cell = tableView.dequeueReusableCellWithIdentifier("BTableViewCell") as BTableViewCell
        }
        cell.label.text = "\(row)"
        
        return cell
    }
などというように、継承の利点を活かして各値を設定できる。