>>547
メソッドの戻り値として使う
foo? の戻り値が true か false みたいな感じ
yardとかで説明で書かれるところのBoolean

もちろんnilとfalse以外のオブジェクトは全部真だから、理屈上はfoo自体の結果を返してもよい
ただ、これやるとマニュアル書くのめんどいしget_foo_valueみたいなのの代わりに使うアホが出るしなによりirbでめっつァ不便
良い例:
irb> obj.foo?
true
悪い例:
irb> obj.foo?
#<MyFooObject:0xb7c0dcc8 @val1=#<AnotherObject ...>
@val2=なんか長いすっごい長いデータ @content=[] @userdata1=nil @userdata2=nil @userdata3=nil >

「def foo?; !!@foo; end」って書くのカッコ悪いとかいうくだらない理由で
@fooを直接返しちゃうダメな感じの製作者がいるが真似してはいけません