Ruby on railsの認証機能ライブラリ Devise を導入した際に、そのサインインページやサインアップページで
No route matches {:controller=>"devise/welcome"}
のようなエラーが出る場合。

まず、ログをよくよく見てみると、layouts/application.rb内の link_to のメソッドを使っているところでエラーが発生しているのが分かります。
エラーが起こっているところをコメントアウトしていって確認してみると、
<%= link_to 'トップページ', :controller=>'homes', :action=>'welcome' %>
のような書き方をしている link_to が問題なよう。
そこで、上記と同じ機能を果たす
<%= link_to 'トップページ', root_url %>
<%= link_to 'トップページ', welcome_homes_path %>
という書き方に変えてあげるとエラーが発生しなくなりました。

welcome_homes_path
などの表記は、基本的に (action名)_(controller名)_path という構成になってます。
ただ、controller名が単数形のものだったり複数形のものだったりするので、
コンソールから
rake routes
を実行して
welcome_homes GET /homes/welcome(.:format) homes#welcome
このような表示でアクセスできるURLの確認ができるので、それの一番左の文字列の最後に _path をつけたものを使えば間違いないです。